程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言算術、賦值、關系、邏輯運算詳細剖析

C語言算術、賦值、關系、邏輯運算詳細剖析

編輯:關於C
標識符和關鍵字 ¨標識符:用來標識程序中的變量、符號常量、函數、數組、類型、文件等對象             的名字。標識符只能由字母、數字和下劃線組成,且第一個字符必需為字母或下劃線。C語言中大小寫字母是兩個不同的字符。 ¨關鍵字:標識符的一個特殊的集合。其中的標識符在C語言中有預先定義好的特殊意義。不能用於其他任何目的。 ¨C語言的關鍵字共32個:    auto break case char const continue defaultdo    double else enum extern float for goto if       int long register return short signed sizeof static    struct switch typedef union unsigned voidvolatile while   運算符、表達式和計算 C的運算符主要分為四大類: 算術運算符(+加 -減 ×乘 /除  %取余  ++自增1 --自減1) 關系運算符(>大於  <小於  ==等於  >=大於或等於  <=小於或等於  !=不等於) 邏輯運算符(!邏輯非 &&邏輯與  ||邏輯或 ) 位運算符  (<<按位左移 >>按位右移 ~按位取反  |按位或ˆ按位異或 &按位與 ) 特殊運算符 : 賦值運算符(=)、條件運算符(? :)               逗號運算符(,)、指針運算符(* &)、               求字節運算符(sizeof)、               強制類型轉換運算符((類型))、               分量運算符(. ->)、下標運算符([ ])、函數調用(( ))等。 賦值運算符與賦值表達式   一、剖析10種復合賦值運算符:  +=、 -=、 *=、 /=、 %=、 <<=、 >>=、&=、 ^=、 |= 例x+=1等價於x=x+1 自增運算符前置和後置的區別 作為表達式時:,++前置時,自增表達式(++n)的值等於其操作數自增後的值;++ 後置時,自增表達式( n++)的值等於其操作數自增前的值 實例1:自增運算符前置和後置 //自增運算  //前置自增和後置自增的區別  int X,Y,Z;  X=5;  Y=X++ +5;  printf("x++自增運算結果:%d\n",Y);  printf("x結果1:%d\n",X);  Z=++X +5;  printf("x結果2:%d\n",X);  printf("++x自增運算結構:%d\n",Z);  return 0; 運行結果如下:     二、逗號運算符及其表達式 C語言中,逗號“,”的用法有兩種:一種是用作分隔符,另一種是用作運算符。逗號表達式  形式:表達式1,表達式2,表達式3,...,表達式n  例 a=2*6,a-4,a+15;  當逗號作為運算符使用時是一個雙目運算符,其運算優先級是所有運算符中最低的。逗號運算符的運算順序是自左向右的,請注意,後面兩個表達式的值僅作了計算,而並沒有賦給a,所以a的值仍然為12。  逗號表達式求值過程:分別求逗號表達式每一項的值,並以最後一個表達式n的值作為整個逗號表達式的值。  實例2:逗號表達式  inta;  a=3*5,a*4,a+5;  printf("a值為:%d\n",a);  return 0; 編譯、鏈接、執行後的結果: 實例3:逗號表達式  int a=2,b=4,c=6,x,y;  y=3*5,y=((x=a+b),y=0,y=(b+c));  printf("y=%d,x=%d\n",y,x);  return 0; 編譯、鏈接、執行後的結果:   三、剖析位運算符 實例4:用C語言寫一個程序:輸入兩個十進制數,並輸出它們按位或的結果 //位運算  //位或運算---1  int a,b,c;  printf("請輸入兩個數:");  scanf("%d %d",&a,&b);  c=a|b;  printf("a=%d\n b=%d\n 它們按位或的結果為:c=%d\n",a,b,c);    Output:  請輸入兩個數:3 5  a=3  b=5  它們按位或的結果為:c=7    //位異運算---2  int a,b,c;  printf("請輸入兩個數:");  scanf("%d %d",&a,&b);  c=a^b;  printf("a=%d\nb=%d\n它們按位或的結果為:c=%d\n",a,b,c);    Output:  請輸入兩個數:1 7  a=1  b=7  它們按位或的結果為:c=6 分析程序:所謂位運算是指進行二進制的運算。3化為二進制數為0011,5化為二進制數為0101,按照按位或運算規則:1|1=1、1|0=1、0|1=1、0|0=0,按照按位異運算規則:1^1=0、1^0=1、0^1=1、0^0=0它們按位或的結果為0111,化為十進制數,便為7   四、條件(三元)運算符 (? :) test ?expression1 : expression2 參數 test 任何 Boolean 表達式。 expression1 test 為 true時返回的表達式。可能是逗點表達式。 expression2 test 為 false 時返回的表達式。可能是逗點表達式。 ?  : 運算符可以用作 if...else語句的快捷方式。它通常用作較大表達式(使用 if...else 語句會很繁瑣)的一部分。例如:     var now = new Date(); var greeting = "Good" + ((now.getHours() >17) ? " evening." : " day."); 在此例中,如果晚於下午 6 時,則創建一個包含 "Good evening." 的字符串。使用 if...else語句的等效代碼如下: var now = new Date(); var greeting = "Good"; if (now.getHours() > 17)    greeting +=" evening."; else    greeting += " day.";
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved