1. 程式人生 > 實用技巧 >C語言學習筆記 變數型別

C語言學習筆記 變數型別

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

強制型別轉換
形式:(型別)值,比如(int10.2, (short)32
注意這時候的安全性,小的變數不總能表達大的變數,(short32768----》-32768,(char32768--》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;
//不要使用巢狀的條件運算子