C語(yǔ)言中的數(shù)據(jù)類型詳解
C 中的類型可分為以下幾種:
數(shù)組類型和結(jié)構(gòu)類型統(tǒng)稱為聚合類型。函數(shù)的類型指的是函數(shù)返回值的類型。在本章節(jié)接下來(lái)的部分我們將介紹基本類型,其他幾種類型會(huì)在后邊幾個(gè)章節(jié)中進(jìn)行講解。
整數(shù)類型
下表列出了關(guān)于標(biāo)準(zhǔn)整數(shù)類型的存儲(chǔ)大小和值范圍的細(xì)節(jié):
注意,各種類型的存儲(chǔ)大小與系統(tǒng)位數(shù)有關(guān),但目前通用的以64位系統(tǒng)為主。
以下列出了32位系統(tǒng)與64位系統(tǒng)的存儲(chǔ)大小的差別(windows 相同):
為了得到某個(gè)類型或某個(gè)變量在特定平臺(tái)上的準(zhǔn)確大小,您可以使用 sizeof 運(yùn)算符。表達(dá)式 sizeof(type) 得到對(duì)象或類型的存儲(chǔ)字節(jié)大小。下面的實(shí)例演示了獲取 int 類型的大?。?/p>
#include <stdio.h> #include <limits.h> int main() { printf("int 存儲(chǔ)大小 : %lu \n", sizeof(int)); return 0; }
%lu 為 32 位無(wú)符號(hào)整數(shù),詳細(xì)說(shuō)明查看 C 庫(kù)函數(shù) - printf()。
當(dāng)您在 Linux 上編譯并執(zhí)行上面的程序時(shí),它會(huì)產(chǎn)生下列結(jié)果:
int 存儲(chǔ)大小 : 4
浮點(diǎn)類型
下表列出了關(guān)于標(biāo)準(zhǔn)浮點(diǎn)類型的存儲(chǔ)大小、值范圍和精度的細(xì)節(jié):
頭文件 float.h 定義了宏,在程序中可以使用這些值和其他有關(guān)實(shí)數(shù)二進(jìn)制表示的細(xì)節(jié)。下面的實(shí)例將輸出浮點(diǎn)類型占用的存儲(chǔ)空間以及它的范圍值:
#include <stdio.h> #include <float.h> int main() { printf("float 存儲(chǔ)最大字節(jié)數(shù) : %lu \n", sizeof(float)); printf("float 最小值: %E\n", FLT_MIN ); printf("float 最大值: %E\n", FLT_MAX ); printf("精度值: %d\n", FLT_DIG ); return 0; }
%E 為以指數(shù)形式輸出單、雙精度實(shí)數(shù),詳細(xì)說(shuō)明查看 C 庫(kù)函數(shù) - printf()。
當(dāng)您在 Linux 上編譯并執(zhí)行上面的程序時(shí),它會(huì)產(chǎn)生下列結(jié)果:
float 存儲(chǔ)最大字節(jié)數(shù) : 4
float 最小值: 1.175494E-38
float 最大值: 3.402823E+38
精度值: 6
void 類型
void 類型指定沒(méi)有可用的值。它通常用于以下三種情況下:
如果現(xiàn)在您還是無(wú)法完全理解 void 類型,不用太擔(dān)心,在后續(xù)的章節(jié)中我們將會(huì)詳細(xì)講解這些概念。
類型轉(zhuǎn)換
類型轉(zhuǎn)換是將一個(gè)數(shù)據(jù)類型的值轉(zhuǎn)換為另一種數(shù)據(jù)類型的值。
C 語(yǔ)言中有兩種類型轉(zhuǎn)換:
- 隱式類型轉(zhuǎn)換: 隱式類型轉(zhuǎn)換是在表達(dá)式中自動(dòng)發(fā)生的,無(wú)需進(jìn)行任何明確的指令或函數(shù)調(diào)用。它通常是將一種較小的類型自動(dòng)轉(zhuǎn)換為較大的類型,例如,將int類型轉(zhuǎn)換為long類型或float類型轉(zhuǎn)換為double類型。隱式類型轉(zhuǎn)換也可能會(huì)導(dǎo)致數(shù)據(jù)精度丟失或數(shù)據(jù)截?cái)唷?/li>
- 顯式類型轉(zhuǎn)換: 顯式類型轉(zhuǎn)換需要使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(type casting operator),它可以將一個(gè)數(shù)據(jù)類型的值強(qiáng)制轉(zhuǎn)換為另一種數(shù)據(jù)類型的值。強(qiáng)制類型轉(zhuǎn)換可以使程序員在必要時(shí)對(duì)數(shù)據(jù)類型進(jìn)行更精確的控制,但也可能會(huì)導(dǎo)致數(shù)據(jù)丟失或截?cái)唷?/li>
隱式類型轉(zhuǎn)換實(shí)例:
int i = 10; float f = 3.14; double d = i + f; // 隱式將int類型轉(zhuǎn)換為double類型
顯式類型轉(zhuǎn)換實(shí)例:
double d = 3.14159; int i = (int)d; // 顯式將double類型轉(zhuǎn)換為int類型
1、數(shù)據(jù)類型轉(zhuǎn)換:C 語(yǔ)言中如果一個(gè)表達(dá)式中含有不同類型的常量和變量,在計(jì)算時(shí),會(huì)將它們自動(dòng)轉(zhuǎn)換為同一種類型;在 C 語(yǔ)言中也可以對(duì)數(shù)據(jù)類型進(jìn)行強(qiáng)制轉(zhuǎn)換;
2、自動(dòng)轉(zhuǎn)換規(guī)則:
- a)浮點(diǎn)數(shù)賦給整型,該浮點(diǎn)數(shù)小數(shù)被舍去;
- b)整數(shù)賦給浮點(diǎn)型,數(shù)值不變,但是被存儲(chǔ)到相應(yīng)的浮點(diǎn)型變量中;
3、強(qiáng)制類型轉(zhuǎn)換形式: (類型說(shuō)明符)(表達(dá)式)
實(shí)例程序:
#include<stdio.h> int main() { float f,x=3.6,y=5.2; int i=4,a,b; a=x+y; b=(int)(x+y); f=10/i; printf("a=%d,b=%d,f=%f,x=%f\n",a,b,f,x); }
例中先計(jì)算 x+y 值為 8.8,然后賦值給 a,因?yàn)閍為整型,所以自取整數(shù)部分8,a=8;
接下來(lái) b 把 x+y 強(qiáng)制轉(zhuǎn)換為整型;
最后 10/i 是兩個(gè)整數(shù)相除,結(jié)果仍為整數(shù) 2,把 2 賦給浮點(diǎn)數(shù) f;
x 為浮點(diǎn)型直接輸出。
以上就是C語(yǔ)言中的數(shù)據(jù)類型詳解的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言 數(shù)據(jù)類型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++Node類Cartographer開(kāi)始軌跡的處理深度詳解
這篇文章主要介紹了C++Node類Cartographer開(kāi)始軌跡的處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-03-03C++中關(guān)于[]靜態(tài)數(shù)組和new分配的動(dòng)態(tài)數(shù)組的區(qū)別分析
這篇文章主要介紹了C++中關(guān)于[]靜態(tài)數(shù)組和new分配的動(dòng)態(tài)數(shù)組的區(qū)別分析,很重要的概念,需要的朋友可以參考下2014-08-08解決C語(yǔ)言中使用scanf連續(xù)輸入兩個(gè)字符類型的問(wèn)題
這篇文章主要介紹了解決C語(yǔ)言中使用scanf連續(xù)輸入兩個(gè)字符類型的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12C++ Qt開(kāi)發(fā)之LineEdit單行輸入組件的用法詳解
Qt 是一個(gè)跨平臺(tái)C++圖形界面開(kāi)發(fā)庫(kù),利用Qt可以快速開(kāi)發(fā)跨平臺(tái)窗體應(yīng)用程序,在Qt中我們可以通過(guò)拖拽的方式將不同組件放到指定的位置,實(shí)現(xiàn)圖形化開(kāi)發(fā)極大的方便了開(kāi)發(fā)效率,本章將重點(diǎn)介紹LineEdit單行輸入框組件的常用方法及靈活運(yùn)用2023-12-12C語(yǔ)言實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)實(shí)戰(zhàn)教學(xué)
在本篇文章里小編給大家分享了關(guān)于C語(yǔ)言實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)實(shí)戰(zhàn)教學(xué)內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)參考下。2019-01-01C++實(shí)現(xiàn)圖書(shū)信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)圖書(shū)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03