在程序的世界中,承載一系列的信息的數(shù)字和字符都屬于數(shù)據(jù)類型,但計算機(jī)需要一種方法來區(qū)別和使用這些不同的類型。具體的,C通過識別一些基本的數(shù)據(jù)類型做到這些。如果是常量數(shù)據(jù),編譯器一般通過其書寫來辨認(rèn)其類型,比如:123是整數(shù),3.14浮點(diǎn)數(shù)(即小數(shù))。而變量則需要在聲明語句中指定其類型,稍后會做詳細(xì)介紹。我們先了解C語言的基本數(shù)據(jù)類型。
基本數(shù)據(jù)類型
C語言的基本數(shù)據(jù)類型為:整型、字符型、實(shí)數(shù)型。這些類型按其在計算機(jī)中的存儲方式可被分為兩個系列,即整數(shù)(integer)類型和浮點(diǎn)數(shù)(floating-point)類型。
這三種類型之下分別是:short、int、long、char、float、double這六個關(guān)鍵字再加上兩個符號說明符signed和unsigned就基本表示了C語言的最常用的數(shù)據(jù)類型。
下面列出了在32位操作系統(tǒng)下常見編譯器下的數(shù)據(jù)類型大小及表示的數(shù)據(jù)范圍:
類型名稱 | 類型關(guān)鍵字 | 占字節(jié)數(shù) | 其他叫法 | 表示的數(shù)據(jù)范圍 |
字符型 | char | 1 | signed char | -128 ~ 127 |
無符號字符型 | unsigned char | 1 | none | 0 ~ 255 |
整型 | int | 4 | signed int | -2,147,483,648 ~ 2,147,483,647 |
無符號整型 | unsigned int | 4 | unsigned | 0 ~ 4,294,967,295 |
短整型 | short | 2 | short int | -32,768 ~ 32,767 |
無符號短整型 | unsigned short | 2 | unsigned short int | 0 ~ 65,535 |
長整型 | long | 4 | long int | -2,147,483,648 ~ 2,147,483,647 |
無符號長整型 | unsigned long | 4 | unsigned long | 0 ~ 4,294,967,295 |
單精度浮點(diǎn)數(shù) | float | 4 | none | 3.4E +/- 38 (7 digits) |
雙精度浮點(diǎn)數(shù) | double | 8 | none | 1.7E +/- 308 (15 digits) |
長雙精度浮點(diǎn)數(shù) | long double | 10 | none | 1.2E +/- 4932 (19 digits) |
長整型 | long long | 8 | __int64 | -9223372036854775808~9223372036854775808 |
在認(rèn)識了這么多的數(shù)據(jù)類型之后,我們就可以根據(jù)不同的實(shí)際情況,在不同的問題中選擇最符合的數(shù)據(jù)類型來使用。舉個例子,如要計算兩個數(shù)的和,我可以采用int類型定義兩個變量,然后輸出。
int a=24000,b=12345;//定義兩個變量a,b并賦值 int c;//定義變量c用于計算a+b的和 c=a+b; printf("a+b = %d",c);//輸出結(jié)果
沒錯,可能您已經(jīng)考慮到,如果a+b的和超出int類型的最大范圍時的問題。這個就需要您根據(jù)不同的作用選擇不同的數(shù)據(jù)類型存儲了。
關(guān)鍵字
在C語言中,為了定義變量、表達(dá)語句功能和對一些文件進(jìn)行預(yù)處理,還必須用到一些具有特殊意義的字符,這就是關(guān)鍵字,我們用戶自己定義的變量函數(shù)名等要注意不可以與關(guān)鍵字同名。
C語言中的32個關(guān)鍵字 | |||
auto | double | int | struct |
break | else | long | switch |
case | enum | register | typedef |
char | extern | return | union |
const | float | short | unsigned |
continue | for | signed | void |
default | goto | sizeof | volatile |
do | if | static | while |
以上關(guān)鍵字大家無需刻意記憶,還未遇到學(xué)習(xí)的關(guān)鍵字待后續(xù)教程學(xué)習(xí)即可。
本文固定URL:http://www.sztianhecheng.cn/course/10
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程