最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言數(shù)據(jù)類型還有哪些搞不明的

 更新時間:2026年05月13日 10:01:17   作者:菊花花生油456  
C語言的數(shù)據(jù)類型是理解C語言編程的基礎(chǔ),它們決定了變量的存儲方式以及可以進(jìn)行哪些操作,本文給大家介紹C語言數(shù)據(jù)類型相關(guān)知識,感興趣的朋友一起看看吧

數(shù)據(jù)類型的介紹

在C語言中有豐富的數(shù)據(jù)類型描述現(xiàn)實中的數(shù)據(jù)

C語言將我們平時日常生活中的數(shù)據(jù)分成三種:整形類型 字符類型 浮點類型

  • 整形類型

整形類型從名字可以聯(lián)想到什么?
整形
對就是這樣
在C語言中使用int表示整形類型,(源于整形的英文單詞integer)

//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整形
int 
[signed] int
unsigned int
//長整型
long [int]
[signed] long [int]
unsigned long [int] 
//更長的整形
//c99中引入
long long [int]
[signed] long long [int]
unsigned long long [int] 
  • 字符類型
    字符包括字母,文字,符號等等都是字符
    在C語言中用char表示(源于英文字母character)
char
[signed] char
unsigned char
  • 浮點類型
    小數(shù)點的浮動浮點類型
float
double
long double  
  • 布爾類型
    區(qū)別于其他類型,是用來判斷真假的一種類型
    C語言中原來并沒有為布爾值單獨設(shè)置一個類型,而是使用0表示假,非零表示真
    在C99中引用布爾類型:true或者false
#define bool _Bool
#define false 0 //假
#define true 1 //真

代碼演示

_Bool flag = true;
if (flag)
printf ("i like C\n"0);

這時候有人有疑問了這個int ,char ,double我都知道了,但是這個signed,unsigned還有long是什么意思,咋突然就出現(xiàn)了
首先我們來說一下long
這時候大家就要知道一個東西,每種數(shù)據(jù)類型都有自己的長度,接下來我們詳細(xì)說一下

各種數(shù)據(jù)類型的長度

每一種數(shù)據(jù)類型都有自己的長度,占用的內(nèi)存空間不同,使用合適的類型長度能夠節(jié)省內(nèi)存空間,加大開發(fā)效率

  • sizeof操作符
    sizeof是一個關(guān)鍵字,也可以是操作符,是用來專門計算類型長度的,單位是字節(jié)
    接下來我們來看一下這些數(shù)據(jù)類型的具體長度
#include <stdio.h>
int main()
{
printf ("%zu\n",sizeof(_Bool));
printf ("%zu\n",sizeof(char));
printf ("%zu\n",sizeof(short));
printf ("%zu\n",sizeof(int));
printf ("%zu\n",sizeof(long));
printf ("%zu\n",sizeof(long long));
printf ("%zu\n",sizeof(float));
printf ("%zu\n",sizeof(double));
printf ("%zu\n",sizeof(long double));

在VS2022 X64配置下的運行結(jié)果為:

1
1
2
4
4
8
4
8
8

另外還有一個表示長度的單位比字節(jié)更小,就是比特
1字節(jié)=8比特
由此我們可以的得到每個數(shù)據(jù)類型的長的度,這時候有的人可能會發(fā)現(xiàn)自己得出的結(jié)果不一樣
這是因為C語言規(guī)定sizof(long)>=sizof(int)所以有的配置環(huán)境下的結(jié)果是8
sizeof(long double)>=sizeof(double)也是這樣了,在有些配置下的的結(jié)果是16

sizeof的操作符的操作數(shù)可以是類型,也可以是變量或者表達(dá)式,后面跟的是表達(dá)式的時候,括號可以去掉,

sizeof(類型)
sizeof 表達(dá)式

sizeof后面的表達(dá)式不真實參與運算的,根據(jù)表達(dá)式的類型來得出大小

#include <stdio.h>
int mian()
{
short s = 12;
int b = 10;
prinrf("%zu\n",sizeof(s = b + 1 ));
printf("s = %d\n",s);
return 0;
}

運行結(jié)果為

2
s = 12

為什么呢?
首先無論等號后面的數(shù)字有多么大他都要放在這個short的這個空間里面,這個空間的字節(jié)大小是2,1的數(shù)據(jù)類型是int,b的類型也是int表達(dá)式不參與運算,等號右邊的類型是int,但int這個類型的長度是4不夠存放就直接截去,所以是2
12由于sizeof后面的表達(dá)式不參與計算所以依然是12

signed 和 unsigned

C語言使用signedunsigned關(guān)鍵字修飾字符型和整型類型的
signed表示類型整形帶有正負(fù)號和零
unsigned表示整形正整數(shù)和零
對于int類型,默認(rèn)是帶有正負(fù)號的也即是說signed int等同于sgned int

signed int a;
//等同于int a;

想要只表示負(fù)數(shù)就要加unsigned聲明變量

unsigned int a;

聲明變量的好處是同樣長度的內(nèi)存能夠表示的最大整數(shù)類型擴大一倍
比如,16位的signed short int 的取值范圍是:-32768~32767,最大是32767;而unsigned short int的取值范圍是:0~65535,最大值增加到了65535。32位的siggned int的取值范圍可以參考limits.h中給的相關(guān)定義。
下面是在VS2022環(huán)境中,limits.h中的相關(guān)定義

#define SHRT_MIN   (-32768)   //有符號16位整型的最小值
#define SHRT_MAX    32767     //有符號16位整型的最大值
#define USHRT_MAX   0xfff     //無符號16位整型的最大值
#define INT_MIN     (-2147483647  -1)     //有符號整型的最小值
#define INT_MAX     2147483647    ///有符號整型的最大值

unsigned int里面的int可以省略,所以也可以寫成

unsigned a;

字符類型char也有signedunsigned

signed char c;//范圍為-128到127
unsigned char c;//范圍為0到255

注意,C語言規(guī)定char類型默認(rèn)是否包括符號是由當(dāng)前系統(tǒng)決定的
所以char不等同與signed char,可能是signed char也可能是unsigned char
這一點區(qū)別于int

到此這篇關(guān)于C語言數(shù)據(jù)類型還在搞不明白?的文章就介紹到這了,更多相關(guān)C語言數(shù)據(jù)類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言簡易掃雷游戲

    C語言簡易掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語言簡易掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C/C++實現(xiàn)快速排序的方法

    C/C++實現(xiàn)快速排序的方法

    這篇文章主要介紹了C/C++實現(xiàn)快速排序的方法,這幾天在找工作,被問到快速排序,結(jié)果想不出來快速排序怎么弄的;回來搜索了一下,現(xiàn)在記錄下來,方便以后查看。
    2014-12-12
  • C++中值傳遞時觸發(fā)拷貝構(gòu)造函數(shù)的完整過程

    C++中值傳遞時觸發(fā)拷貝構(gòu)造函數(shù)的完整過程

    本文詳細(xì)介紹了C++中值傳遞時觸發(fā)拷貝構(gòu)造函數(shù)的完整過程,包括觸發(fā)拷貝構(gòu)造的時機、過程本質(zhì)以及如何避免觸發(fā)拷貝構(gòu)造,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • c++如何控制對象的創(chuàng)建方式(禁止創(chuàng)建棧對象or堆對象)和創(chuàng)建的數(shù)量

    c++如何控制對象的創(chuàng)建方式(禁止創(chuàng)建棧對象or堆對象)和創(chuàng)建的數(shù)量

    這篇文章主要介紹了c++如何控制對象的創(chuàng)建方式和創(chuàng)建的數(shù)量,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • 最新C語言中g(shù)etchar的使用

    最新C語言中g(shù)etchar的使用

    getchar()是在輸入緩沖區(qū)順序讀入一個字符(包括空格、回車和Tab) ,getchar()是stdio.h中的庫函數(shù),它的作用是從stdin流中讀入一個字符,本文給大家介紹getchar的使用,感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • 使用C語言繪制柱形圖的示例代碼

    使用C語言繪制柱形圖的示例代碼

    常用的統(tǒng)計圖有條形圖、柱形圖、折線圖、曲線圖、餅圖、環(huán)形圖、扇形圖,這篇文章主要為大家介紹了C語言中繪制條形圖和柱形圖的方法,需要的可以參考下
    2024-02-02
  • 推箱子游戲C語言實現(xiàn)代碼

    推箱子游戲C語言實現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了推箱子游戲C語言實現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C++學(xué)習(xí)之IO流(輸入輸出流)詳解

    C++學(xué)習(xí)之IO流(輸入輸出流)詳解

    流是一種抽象概念,它代表了數(shù)據(jù)的無結(jié)構(gòu)化傳遞。而用來進(jìn)行輸入輸出操作的流就稱為IO流。這篇文章主要為大家介紹了C++中IO流的使用詳解,需要的朋友可以參考一下
    2021-12-12
  • C語言實現(xiàn)學(xué)生個人消費管理系統(tǒng)

    C語言實現(xiàn)學(xué)生個人消費管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言學(xué)生個人消費管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Qt帶參數(shù)的信號和槽函數(shù)舉例詳解

    Qt帶參數(shù)的信號和槽函數(shù)舉例詳解

    信號槽的設(shè)計旨在實現(xiàn)控件和處理邏輯的解耦合,但在實際開發(fā)中,一對一的關(guān)系更為常見,這篇文章主要介紹了Qt帶參數(shù)的信號和槽函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2025-03-03

最新評論

北宁市| 响水县| 乌鲁木齐县| 永胜县| 光泽县| 九寨沟县| 昌吉市| 西林县| 尼勒克县| 商河县| 邻水| 湖口县| 东乌珠穆沁旗| 永泰县| 遂溪县| 岳池县| 高清| 虎林市| 巴林左旗| 连江县| 根河市| 建昌县| 新河县| 乳山市| 大城县| 武义县| 四川省| 怀集县| 西林县| 洛川县| 平凉市| 东乌珠穆沁旗| 讷河市| 彭阳县| 贡山| 西平县| 荔浦县| 武川县| 武邑县| 凌源市| 阿鲁科尔沁旗|