標識符和關鍵字
¨標識符:用來標識程序中的變量、符號常量、函數、數組、類型、文件等對象 的名字。標識符只能由字母、數字和下劃線組成,且第一個字符必需為字母或下劃線。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.";