C語言程式設計之《究竟有多少種小房子》

小拾一發表於2018-08-18

在之前的幾節種,我們已經知道計算機如果想“記住”某個值,就必須在計算機的大腦“摩天大廈”中,申請一個小房子例如:

int a,b,c;

就是申請三個小房子分別叫做a,b和c。這三個小房子只能夠用進來存放整數(整型資料)。

再例如:

float a,b,c;

就是申請三個小房子a,b和c。這三個小房子只能夠用來存放小數(浮點型資料)。

也就是說在計算機中,不同的型別資料需要相應型別的小房子來儲存。

那麼計算機一共有多少種型別的房子呢?我們來例句幾個最常用的:

好了,目前為止

首先說明一下float和double的區別。

請觀察下面兩段程式碼

程式碼1:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float a;
    a=3.141592653897932;
    printf("%.15f",a);
    return 0;
}

程式碼2:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    double a;
    a=3.141592653897932;
    printf("%.15lf",a);
    return 0;
}

我們觀察一下程式碼1和程式碼2的不同之處有兩點。程式碼1中是用float來申請小房子a,在輸出是相對於的佔位符是%f,其中“%”和“f”之間的“.15”表示的是保留小數點後15位(四捨五入)。程式碼2中是用double來申請小房子a,在輸出是相對應的是佔位符%lf,注意吃醋不是數字“1”而是字母“l”,同樣“%”和“lf”之間的“.15”表示的是保留小數點後15位(四捨五入)。

他們 的執行結果分別是如下:

程式碼1執行結果:

程式碼2執行結果:

怎麼樣,你發現問題了吧,程式碼1執行後輸出的是3.141592741012573,顯然小數點後第7位開始就不對了,二程式碼2執行後輸出的是3.141592653589793,完全正確。因此我們可以發現double比float可以表示的更精確。另外float和double表示的素的大小範圍也不同。

在表中,我們發現有一個新的資料型別“char”,用char申請出來的小房子是用來存放支付的。如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char a;
    scanf("%c",&a);
    printf("你剛才輸入的字元是%c",a);
    return 0;
}

我們輸入一個字元“x”後點選回車,結果如下圖,當然你也可以嘗試一下別的字元。

想一想,對於上面這段程式碼,如果此時你輸入的不是一個字母,而是一串字母計算機會輸出什麼呢?很抱歉,計算機只會輸出你輸入的第一個字母。

有的童鞋可能要問拉,如果想儲存一大串字元改怎麼辦呢?不要著急,我們將在後續的章節中介紹如何儲存一個字串。

第一節:C語言程式設計之《讓計算機開口說話》

第二節:C語言程式設計之《輸出帶有顏色》

第三節:C語言程式設計之《用計算機做加法》

第四節:C語言程式設計之《變數—用來儲存資料的小房子》

第五節:C語言程式設計之《資料輸出》

第六節:C語言程式設計之《從鍵盤輸入資料》

相關文章