1,資料類型,運算符,表達式和語句
(1)基本資料類型:整型、浮點型、指針和聚合類型(數組、結構體)
1)整型:字元、短整型、整型、長整型(都分為有符号和無符号兩種)
長整型至少應該和整型一樣長,而整型至少應該和短整型一樣長。(short int至少16位,long int至少32位,一般3個整型值都被設為32位)
頭檔案limits.h說明了各種不同的整數類型的特點:變量範圍的限制
變量的最小範圍:
char:【0到127】
signed char:【-127到127】
unsigned char:【0至255】
short int:【-32767到32767】
unsigned short int:【0到65535】
int:【-32767到32767】
unsigned int:【0到65535】
long int:【-2147483647到2147483647】
unsigned long int:【0到4294967295】
字面值(字面值常量):一個實體,指定了自身的值,并且不允許發生改變
命名常量:聲明為const的變量[const定義變量時,列印都為原數,若利用指針修改資料,隻有列印用指針形式表示的變量,變量值才會發生改變。]
寬字元常量(wchar_t)多位元組字元常量的前面有一個L L'x'
eg:把一個字元轉換為一個二進制值
value = value - 48;
value = value - \60;
value = value - '0';
枚舉:枚舉類型就是指它的值為符号常量而不是字面值的類型(enum),這種類型的變量實際上以整型的方式存儲,這些符号名的實際值都是整型值(這裡的整型值可以改變,未顯式指定時則比前面一個符号名的值大1)。
2)浮點型:float(單精度),double(雙精度),long double(擴充精度)
頭檔案float.h表示能存儲的最大值
浮點數字面值在預設情況下都是double類型的,加L或l為long double型,加F或f為float型
3)指針:變量的值存儲于計算機的記憶體中,每個變量都占據一個特定的位置。每個記憶體位置都由位址唯一确定并引用,指針是位址的另一個名字。
指針常量
字元串常量:一串以NUL位元組結尾的零個或多個字元。(\0)/指針/數組
(2)運算符
1)算術操作符:+ - * / %
2)移位操作符:左移<< 右移>>
從左邊移入新位時,可以選擇兩種方案;
一,邏輯移位:左邊移入的位用0填充
二,算術移位:左邊移入的位由原值的符号位決定,當符号位為1時,則填充位為1,符号位為0時,填充為0.
算術左移與邏輯左移的結果都相同,隻在右移時不同(操作數為負數)。
無符号值得移位操作都是邏輯移位,有符号數根據編譯器決定。
3)位操作符:& | ^(異或)
4)指派運算:=(複合指派符)
5)單目操作符:!(邏輯反操作) ~(按位取反) ++ -- + -(産生操作數的負值) & * sizeof (類型)[強制類型轉換]
關于sizeof:sizeof(a=b+1)并沒有向a賦任何值
6)關系操作符:< > <= >= != == [筆
7)邏輯操作符:&& ||[短路求值]
8)條件操作符:?:
9)逗号操作符:逗号表達式從左至右依次執行,但結果為最後一個表達式的值。
10)下标引用、函數調用和結構成員
.和->的使用:. 左邊結構體變量
-> 左邊結構體指針
(3)表達式
1)隐式類型轉換:整型提升
2)算術轉換:即不同類型之間的轉換
3)操作符的屬性
術語lexp表示左值表達式,rexp表示右值表達式。【左值代表一個位置,右值表示一個值,故,在使用右值的地方可以使用左值,但使用左值的地方不能使用右值】
4)優先級和求值的順序
()聚組 ()函數調用 [] . -> ++字尾自增 --字尾自減 ! ~ +單目,表示正值 -單目,表示負值 ++字首自增 --字首自減 *間接通路
&取位址 sizeof (類型) * / % + - << >> > >= < <= == != &位與 ^位異或 | && || ?: = += -= *= /= %= <<=
>>= &= ^= |= ,
(4)語句
1)空語句:隻有;
2)表達式語句:表達式加;
3)代碼塊:位于一對花括号之内的可選的聲明和語句清單。
4)if語句:各種類型的if
5)while語句:while循環:循環的測試在循環體開始之前進行,一旦測試結果為假,則不執行。
break語句:用于永久終止循環,在執行完該語句之後,執行流下一條執行的語句就是循環正常結束後應該執行的語句。
continue語句:用于永久終止目前的這次循環,在執行完該語句之後,執行流接下來就是重新測試表達式的值,決定是否繼續執行循環。
6)for語句:for(初始化部分;條件部分;調整部分)
7)do語句:循環體至少執行一次。do…………while…………
8)switch語句:break語句、default子句
9)goto語句:goto語句需要加标簽,一般不使用goto語句,但它可用于跳出多層嵌套的循環,較友善。
若有錯誤,歡迎指正。