1. 程式人生 > >C語言中有關於資料型別的幾個問題

C語言中有關於資料型別的幾個問題

1.整型資料轉換成字元型資料時資料過大;

int  ch1 = 5566;

char  ch2 = (char)ch1;

printf("%c \n", ch2 );

輸出亂碼�;char型別最大範圍到127,所以ch1最大隻能到127。

2.int  ch1 = 0x128;

int  *ch2 = (int*)ch1;  

printf("%d \n", *ch2 );

int  ch1 = 0x128;

int  *ch2 = (int)ch1;

printf("%d \n", *ch2 );

結果是否相同?  實驗表明結果相同(int*)ch1 把ch1轉換成整型指標,其內容為0x128,第二個相當於將地址0x128直接給指標變數ch2。

3.int  ch1 = 97;

char  *ch2 = (char*)ch1;

printf("%c \n", *ch1 );

int  ch1 = 97;

char  *ch2 = ch1;

printf("%c \n", *ch1 );

結果是否相同?實驗表明結果相同,但 char  *ch2 = ch1; 在一些軟體上回報錯,最好不要使用。

----上述兩個問題說明變數ch1的值是本質,而變數型別是其外在表現。

4.int  a = 1 , b = 2 ;

 {

     int a = 9;

printf("%d    %d   ",  a,   b);

}

printf("%d     ",   a);

輸出結果如何?

9     2    1     複合語句內定義變數a只在符合語句內起作用,變數b不僅作用於外部還用於複合語句內部。

以上內容如有錯誤歡迎指正