C語言學習筆記 變數型別
阿新 • • 發佈:2020-07-17
1.int 表示計算機CPU中暫存器的大小,所以不同的計算機及編譯器得到的int型別所佔位元組可能不同,遇刺類似的還有long型別。
2.整數的內部表達:補碼的意義就是拿不罵和原碼可以加出一個溢位的“零”。-1+1=0,11111111 + 00000001 = 100000000。
11111111被當作純二進位制看待就是255,被當作補碼看待就是 -1 。
3.char既可以表示字元,也可以表示整數。C語言中用%c來進行字元的輸入輸出。
1 #include <stdio.h> 2 3 int main() 4 { 5 char c; 6 scanf("%c", &c); 7 printf("c=%d\n", c); 8 printf("c=%c\n", c); 9 printf("c='%c'\n", c);//%c就代表字元1 10 11 return 0; 12 } 13 /*1 14 c = 49 15 c = 1 16 c = '1'*/
//scanf("%d %c")與scanf("%d%c")的區別 int main() { int i; char c; scanf("%d %c", &i, &c); printf("i=%d, c=%d, c='%c'", i, c, c); return 0; } //12 a //i = 12, c = 97, c = 'a' //12a //i = 12, c = 97, c = 'a' ---------------------------------------------------- int main() { int i; char c; scanf("%d%c", &i, &c); printf("i=%d, c=%d, c='%c'", i, c, c); return 0; } //12a //i = 12, c = 97, c = 'a' //12 a//i = 12, c = 32, c = ' ' 讀入的是空格
//字母大小寫轉換
int main() { char c = 'a'; char b = 'A'; printf("c=%d, c='%c' b=%d, b='%c'\n", c, c, b, b); printf("'a'-'A'=%d\n", c - b); printf("A->a:%c\n", b + 32); printf("a->A:%c\n", c - 32); return 0; } //c = 97, c = 'a' b = 65, b = 'A' //'a' - 'A' = 32 //A->a:a //a->A : A
4. 型別轉換
當運算子的兩邊型別不一致時,會自動轉換為較大的型別。
自動型別轉換 char->short->int->long->long long int->float->double 對於printf,任何小於int的型別會被自動轉換成int,float會被轉換成double 但scanf不會,要輸入short,需要%hd 強制型別轉換 形式:(型別)值,比如(int)10.2, (short)32 注意這時候的安全性,小的變數不總能表達大的變數,(short)32768----》-32768,(char)32768--》0 強制型別轉換隻是從那個變數計算出了一個新的型別的值,它不改變那個變數,無論是值還是型別。 強制型別轉換的優先順序高於四則運算。
5. bool型別
#include <stdbool.h>之後就可以使用bool和true,false
6. 邏輯運算
注意:不要把賦值,包括複合賦值組合進表示式。
條件運算子
//條件運算子優先於賦值運算子,但低於其他運算子
count = (count > 10) ? count - 10 : count + 10 相當於 if (count > 10) count = count - 10; else count = count + 10;
//不要使用巢狀的條件運算子