C語言基本資料型別 1

2021-09-17 22:03:48 字數 4008 閱讀 8540

通過前面的舉例分析,我們知道房子的型別,決定了房子的屬性。例如,一房一廳的房子,有乙個房間的空間;兩房一廳的房子,有兩個房間的空間。同理,在c語言中,提供了「資料型別」,它可以定義變數。不同資料型別定義的變數,有不同的儲存空間和使用方式。

c語言支援的基本資料型別有:

(1) char型別,char型別稱為「字元」型別。乙個字元是 'a', 'b', 'c', '#', '!' 這樣的資料。char型別的變數稱為字元型變數,可以存放乙個字元。char型別變數佔據1個位元組的儲存空間。

(2) short 型別,short型別稱為「短整型」。它用於儲存乙個整數值,例如100,188這樣的整數值,short型別變數佔據2個位元組的儲存空間。

(3) int型別,int型別稱為「整型」。它用於儲存乙個整數值,int型別變數佔據4個位元組的儲存空間。

(4) long型別,long型別稱為「長整型」。它用於儲存乙個整數值,long型別變數佔據4個位元組的儲存空間。而且 long 型別可以組合成 long long 型別,它佔據8個位元組的儲存空間。

(5) float型別,floag型別稱為「單精度浮點型」。它存放乙個浮點數,例如12.345, 16.888這樣帶小數點的小數。float型別變數佔據4個位元組的儲存空間。

(6) double型別,double型別稱為「雙精度浮點數」。它儲存乙個浮點數,double型別變數佔據8個位元組的儲存空間。

對於char、short、int和long型別,預設是「有符號數」型別,所以,能夠表示負數。那麼,它們可以結合unsigned關鍵字使用,表示無符號型別資料。

注意:float、double表示的浮點數型別,不可以與unsigned關鍵字組合使用。

我們可以歸納總結「有符號數型別」和「無符號數型別」的儲存容量和表示數值範圍如下表。

資料型別

容量(位數)

取值範圍

char

8-128 ~ 127

(-2^7 ~ 2^7-1)

unsigned char

80 ~ 255

(0 ~ 2^8 - 1)

short

16-32767 ~ 32768

(-2^15 ~ 2^15-1)

unsigned char

160 ~ 65536

(0 ~ 2^18-1)

int32

-2147483648 ~ +2147483647

(-2^31 ~ 2^31-1)

unsigned int

320 ~ 4294967295

(0 ~ 2^32-1)

long

32-2147483648 ~ +2147483647

(-2^31 ~ 2^31-1)

unsigned long

320 ~ 4294967295

(0 ~ 2^32-1)

long long

64-9223372036854775808 ~

9223372036854775807

(-2^63 ~ 2^63-1)

unsigned long long

640 ~ 18446744073709551615

(0 ~ 2^64-1)

char型別的最大值是2^7-1,unsigned char型別的最大值是2^8-1,可以看到,由於char型別變數的最高位作為符號位,只有7位走位數值為,而unsigned char型別的變數,全部8位都作為數值為。所以,能夠表示最大值的範圍不一樣。假設變數的數值位有n位,那麼,能夠表示的最大值是2的n次方減一,即 2^n - 1。例如數值位為1111 1111,此時,數值位有8位,那麼,它的值是1*2^0 + 1*2^1 + 1*2^2 + 1*2^3 + 1*2^4 + 1*2^5 + 1*2^6 + 1*2^7;如果這樣計算,比較繁瑣,那麼,我們可以思考:

1111 1111 + 1 = 1 0000 0000

所以,有:

1111 1111 = 1 0000 0000 – 1

= 1*2^8 - 1

通過這樣的方式計算,就可以快速得到n位全1的二進位制,它的值是2^n – 1。

在c語言中,定義了'a'、'b'、'c'、'#'、'?'這樣的符號為字元。乙個字元可以存放到乙個字元變數中。字元的特點是:

(1) 必須使用單引號 ' ' 把字元包含起來;

(2) 字元可以是ascii表中字符集的字元;

c語言提供了關鍵字char表示「字元型別」;可以定義字元型別的變數;例如:

#include

//包含標頭檔案

, 為了使用

printf()函式;

intmain()                          

//定義程式的主函式

, 就是程式的入口位址;

//主函式的結束標記;

程式執行的輸出結果如下:

mylinux@ubuntu:~/src/test$ gcc test.c -o exe

mylinux@ubuntu:~/src/test$ ./exe

a = x, b = y

可以看到,用char關鍵字定義了字元型別的變數,分別定義了變數a和變數b,都是字元型別,並且給a變數存放了'x'字元,給b變數存放了'y'字元。

最後,在printf()函式中,通過 %c 格式,輸出字元型別變數中存放的字元。

注意:給字元變數賦值的字元,必須使用單引號' '把字元給包含起來。

乙個字元在記憶體中儲存的是其ascii值,那麼,我們可以把乙個字元的ascii值賦給乙個字元變數,然後,再把它輸出。測試的例子如下。

#include

//包含標頭檔案

, 為了使用

printf()函式;

intmain()                          

//定義程式的主函式

, 就是程式的入口位址;

//主函式的結束標記;

程式執行結果如下:

mylinux@ubuntu:~/src/test$ gcc test.c -o exe

mylinux@ubuntu:~/src/test$ ./exe

a = 0, b = 1, c = 2

可以看到,我們把 '0' 字元的ascii值賦給字元變數a,如同把字元 '0' 賦給字元變數a一樣。因為,字元 '0' 的ascii值是48,在記憶體中就是儲存為48這個數值,所以,如同直接把ascii值賦給字元變數。

通過這個例子,我們也分割槽了字元 '1'與數值1是有區別的。數值1的值就是1,但是,字元'1'的值是它的ascii值,是49這個數值。

在自然數中,100、1、99這樣的數值稱為「整數」。那麼,在c語言中,提供了相關的型別來存放整數值。

c語言提供了關鍵字short、int、long表示整數型別,可以定義整數變數。例如588數值,是乙個整數值,那麼,可以存放在整數型別變數中。測試例子如下:

#include

//包含標頭檔案

, 為了使用

printf()函式;

intmain()                          

//定義程式的主函式

, 就是程式的入口位址;

//主函式的結束標記;

程式執行的輸出結果如下:

mylinux@ubuntu:~/src/test$ gcc test.c -o exe

mylinux@ubuntu:~/src/test$ ./exe

x = 100

y = -90

z = 88888

可以看到,在c語言中,提供了關鍵字short、int、long可以定義整數型別,而且是有符號數型別,所以,在變數y中,可以賦值負數。

注意char資料型別雖然是字元型別,但是,它由1個位元組的儲存空間,1個位元組的空間可以儲存8位二進位制資料,可以表示為乙個整數值。

在c語言中,關鍵字char、short、int、long資料預設都是有符號型別,所以儲存的資料可以表示負數。例如char型別的變數,容量是乙個位元組,最高位是符號位,剩餘的7位是資料位。能夠表示最大的數值是0111 1111,十進位制就是127。最小的數值是1000 0001,十進位制就是-127。

C語言基本資料型別

2.各種資料型別介紹 2.1整型 整形包括短整型 整形和長整形。2.1.1短整形 short a 1 2.1.2整形 一般佔4個位元組 32位 最高位代表符號,0表示正數,1表示負數,取值範圍是 2147483648 2147483647,在記憶體中的儲存順序是地位在前 高位在後,例如0x12345...

C語言基本資料型別

1.資料型別可以理解為固定記憶體大小的別名 c語言誕生之前的彙編時代,在低端的機器語言裡面沒有資料型別的概念,如何操作記憶體呢?當然我們知道記憶體的起始位址和記憶體大小,就可以操作這段記憶體了。然而在程式設計過程中,我們發現經常用到1個位元組,2個位元組和4個位元組的記憶體。我們每次呢都會去記這個2...

C語言基本資料型別

記得大學一年級上的基礎課中就有c 語言,剛開始學的時候感覺很難 雖然現在感覺也不容易 最近開始重新翻開c語言的書籍,對於其中的基本資料型別感覺很重要也別有一翻feel。c語言基本資料型別有 int,short int long int double float,char.不管是整型,浮點型以及字元型...