20100601 C語言中的字元型與整型

2021-05-22 17:19:20 字數 1125 閱讀 1688

在vc下,sizeof (int)=4,sizeof(char)=1的,在宣告變數時,是按在記憶體中從高位址分配,遞減變數所佔的位元組數,輸出的位址為其起始位址,既遞減所得位址。陣列從下標高的在記憶體中位址也是高的,char型理應站1個位元組,可是不知道怎麼的,系統分配的卻是4個位元組。檢視變數記憶體位址可以用 printf("%x",&變數名);

下面的**是在vc6.0上編譯的,應該是編譯器的原因,我在dev cpp上編譯char就是佔乙個位元組。

#include

int main()

int i,a[10];

char c,d;

printf("%x/n",&i);

printf("%x/n",&a);

printf("%x/n",&a[0]);

printf("%x/n",&a[9]);

printf("%x/n",&a[10]);

printf("%x/n",&c);

printf("%x/n",&d);

return 0;

結果是:

12ff44

12ff1c

12ff1c

12ff40

12ff44

12ff18

12ff14

press any key to continue

對於char型和int型變數賦值,char擷取int的低位元組。並且char輸出為有符號數。

#include

int main()

int i,j,a[100];

char c;

c=i=258; //100000010b

printf("%d/n",c);//char型擷取低位元組--00000010b

printf("%d/n",i);//int為000000000,00000000,0000001,00000010b

j=0;

while(i!=0)

a[j++]=i%2;

i=i/2;

for(i=j-1;i>=0;--i)//輸出i的二進位制

printf("%d",a[i]);

printf("/n");

return 0;

char型用%u輸出的結果怎麼那麼出乎我意料呢。。。

C語言中的轉義字元

在字符集中,有一類字元具有這樣的特性 當從鍵盤上輸入這個字元時,顯示器上就可以顯示這個字元,即輸入什麼就顯示什麼。這類字元稱為可顯示字元,如a b c 和空格符等都是可顯示字元。另一類字元卻沒有這種特性。它們或者在鍵盤上找不到對應的乙個鍵 當然可以用特殊方式輸入 或者當按鍵以後不能顯示鍵面上的字元。...

C語言中的轉義字元

c語言中的轉義字元 在字符集中,有一類字元具有這樣的特性 當從鍵盤上輸入這個字元時,顯示器上就可以顯示這個字元,即輸入什麼就顯示什麼。這類字元稱為可顯示字元,如a b c 和空格符等都是可顯示字元。另一類字元卻沒有這種特性。它們或者在鍵盤上找不到對應的乙個鍵 當然可以用特殊方式輸入 或者當按鍵以後不...

C語言中的轉義字元

c語言中的轉義字元 在字符集中,有一類字元具有這樣的特性 當從鍵盤上輸入這個字元時,顯示器上就可以顯示這個字元,即輸入什麼就顯示什麼。這類字元稱為可顯示字元,如a b c 和空格符等都是可顯示字元。另一類字元卻沒有這種特性。它們或者在鍵盤上找不到對應的乙個鍵 當然可以用特殊方式輸入 或者當按鍵以後不...