欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言中的數(shù)據(jù)類型詳解

 更新時(shí)間:2023年05月17日 08:46:46   作者:向陽(yáng)逐夢(mèng)  
在C語(yǔ)言中,數(shù)據(jù)類型指的是用于聲明不同類型的變量或函數(shù)的一個(gè)廣泛的系統(tǒng)。變量的類型決定了變量存儲(chǔ)占用的空間,以及如何解釋存儲(chǔ)的位模式,本文將詳細(xì)給大家介紹一下C語(yǔ)言中的基本數(shù)據(jù)類型,感興趣的同學(xué)可以參考下

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++中隱含的this指針

    一文詳解C++中隱含的this指針

    這篇文章主要帶大家詳細(xì)了解一下C++中隱含的this指針,文中通過(guò)代碼示例和圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • C語(yǔ)言中宏定義的教學(xué)詳解

    C語(yǔ)言中宏定義的教學(xué)詳解

    在C語(yǔ)言中,宏定義是預(yù)處理器的指令,主要用于為各種數(shù)據(jù)創(chuàng)建別名,這篇文章主要來(lái)和大家分享一下宏定義的相關(guān)基礎(chǔ)知識(shí),需要的小伙伴可以了解一下
    2023-07-07
  • 基于MFC實(shí)現(xiàn)類的序列化詳解

    基于MFC實(shí)現(xiàn)類的序列化詳解

    序列化是將程序中的對(duì)象以一種二進(jìn)制格式存儲(chǔ)到存儲(chǔ)設(shè)備中(例如文本/數(shù)據(jù)庫(kù)等),以實(shí)現(xiàn)“永生”或隨意“流動(dòng)”。本文將為大家詳細(xì)講講如何基于MFC實(shí)現(xiàn)類的序列化,需要的可以參考一下
    2022-07-07
  • C++Node類Cartographer開(kāi)始軌跡的處理深度詳解

    C++Node類Cartographer開(kāi)始軌跡的處理深度詳解

    這篇文章主要介紹了C++Node類Cartographer開(kāi)始軌跡的處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-03-03
  • C++中關(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ū)別分析

    這篇文章主要介紹了C++中關(guān)于[]靜態(tài)數(shù)組和new分配的動(dòng)態(tài)數(shù)組的區(qū)別分析,很重要的概念,需要的朋友可以參考下
    2014-08-08
  • 五個(gè)嵌入式C語(yǔ)言中的實(shí)用技巧分享

    五個(gè)嵌入式C語(yǔ)言中的實(shí)用技巧分享

    這篇文章主要和大家分享一下五個(gè)嵌入式C語(yǔ)言中的實(shí)用技巧,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語(yǔ)言有一定的幫助,需要的可以參考一下
    2022-12-12
  • 解決C語(yǔ)言中使用scanf連續(xù)輸入兩個(gè)字符類型的問(wèn)題

    解決C語(yǔ)言中使用scanf連續(xù)輸入兩個(gè)字符類型的問(wèn)題

    這篇文章主要介紹了解決C語(yǔ)言中使用scanf連續(xù)輸入兩個(gè)字符類型的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • C++ Qt開(kāi)發(fā)之LineEdit單行輸入組件的用法詳解

    C++ 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-12
  • C語(yǔ)言實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)實(shí)戰(zhàn)教學(xué)

    C語(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-01
  • C++實(shí)現(xiàn)圖書(shū)信息管理系統(tǒng)

    C++實(shí)現(xiàn)圖書(shū)信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)圖書(shū)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論