這篇我們再說說數據類型,我們看看下面這個例子:
#include<stdio.h>
int main()
{
int a;
a=9/2;
printf("%d\n",a);
return 0;
}
這裏聲明的變量爲整型變量,所以輸出a的值爲4,沒有小數位。有些人說用變量a用float呢?
#include<stdio.h>
int main()
{
float a;
a=9/2;
printf("%f\n",a);
return 0;
}
這樣輸出小數點後面依然沒有數值。那怎麼辦呢?這就是這一篇要講的強制類型轉換。我們在C語言中經常遇到上面的情況,我們想得到更加精確的結果。上面的情況我們只需要把其中一個數字改爲小數形式,讓編譯器知道他是小數就可以了。
#include<stdio.h>
int main()
{
float a;
a=9.0/2;
printf("%f\n",a);
}
這只是常量的方式,那麼如果是變量呢?
#include<stdio.h>
int main()
{
int a,b;
float c;
a=9;
b=2;
c=(float)a/b;
printf("%f\n",c);
return 0;
}
所以(float)a中的(float)就是強制類型轉換,它將a由一個整型變化成了單精度浮點數。注意強制類型轉換可能會損失精度。所有的數值類型都可以互相轉換。
下面我們來講講字符類型,前面我們說了字符類型佔一個字節,一個字節8位。我們說過計算機底層只能存儲二進制,那麼字符怎麼表示呢?聰明的人類發明了ASCll編碼,標準ASCll表由7位(最高位通常保留爲0,傳輸時作爲奇偶校驗位)二進制將128個符號和字符編碼而成。如下表:
如果覺得上面的表看的比較暈的話,我們來看看下面的代碼:
#include<stdio.h>
int main()
{
char b='a';
printf("%d\n",b);
return 0;
}
運行上面的代碼,我們就知道屏幕上顯示的是97,二進制爲01100001,而上面的表中97正好對應着小寫的a。這個表其實不用記住,大家知道字符在計算機裏面是怎麼存儲的就好了。
總結
這篇主要是說明強制類型轉換和ASCll編碼,需要自己下來多敲敲代碼,熟悉強制類型轉換,也必須清楚瞭解ASCll編碼。