C語言中基本整型資料型別

2022-09-23 16:15:07 字數 2013 閱讀 1078

c語言中的基本整型資料型別

整型家族包括字元、短整型、整型、長整型,它們都分為有符號和無符號兩種版本

整型值相互之間的大小的規則:

長整型至少應該和整型一樣長,而整型至少應該和短整型一樣長

一般情況下各種型別在32、64位機上的大小

long,unsigned long pointer為機器全字長,其實也就是這幾種型別的大小和cpu的位數是一樣的。

下面的程式是在x86架構環境上,使用gcc version 4.7.2 20121109 (red hat 4.7.2-8) (gcc)編譯得到的

#include

int main()

執行結果

the char range is -128 ~ 127, size is 1

the usigned char range is 0 ~ 255, size is 1

the short range is -32768 ~ 32767, size is 2

the unsigned short range is 0 ~ 65535, size is 2

the int range is -2147483648 ~ 2147483647, size is 4

the unsigned int range is 0 ~ 4294967295, size is 4

the long range is -2147483648 ~ 2147483647, size is 4

the unsigned long range is 0 ~ 4294967295, size is 4

the llong range is -9223372036854775808~ 9223372036854775807, size is 8

the unsigned llong range is 0 ~18446744073709551615, size is 8

default constant size is 4 4 8

整型字面值(整型常量)

字面值這個術語是字面值常量的縮寫------這是一種實體,指定了自身的值,並且不允許發生改變。

當程式內出現整型常量時,它是屬於整型家族型別中的哪一種?答案取決於常量是如何書寫的,可以在有些常量的後面新增乙個字尾來改變預設規則。在整數常量後面新增l或l,可以使這個整數被解釋為long整型值,字元u或u則用於吧數值指定為unsigned 整型值,如果乙個常量後面新增這兩個字元中的各乙個,那麼它就被解釋為unsigned long整型值。對於字元常量。它們的型別總是int。不能再它們後面新增unsigned或者long字尾

c語言一般預設整型常量(字元常量/整型常量)型別為int,

如果使用格式字元%llu,printf會認為要輸出的這個值的大小為8位元組,所以如果對應的引數如果為0x0的話則有可能列印出亂七八糟的東西(因為它讀了8個位元組而不是4個位元組)

另外printf整型變數時,列印的是有符號還是無符號取決於格式字元,與實際傳入的引數型別及符號無關。

例如int i = 0x80001010;

printf("%d\n", i);列印-2147479536

printf("%u\n", i);列印2147487760

printf("%hu\n",i);列印4112高兩位被截斷,列印的實際是0x1010

printf("%hhu\n",i);列印16高三位被截斷,列印的實際是0x10

所以請謹記使用printf列印變數的大小與符號與變數本身無關,即使強轉也不行!應選擇對應正確的格式字元

C語言之整型資料型別

整型資料就是整數。1 整型資料的分類 整型資料的一般分類如下 以下說明的在記憶體中所佔的位元組數均是在vs2012這個開發工具裡面的 基本型 型別說明符為int,在記憶體中佔4個位元組。短整型 型別說明符為short int或short。所佔位元組和取值範圍均與基本型相同。長整型 型別說明符為lon...

C語言中的基本資料型別

寫在前面 剛學習c語言,想通過寫部落格的方式來鞏固和加強自己對於c語言的理解,希望可以獲得一些大佬的指點。在vs2010編譯器下 資料型別 資料型別符 占用位元組數 數值範圍 整型int 4 2147483648 2147483647 231 231 1 短整型short 2 32768 32767...

C和C 語言中基本的資料型別

1 c和c 語言中基本的資料型別有 字元型 char 整型 short,int,long 浮點型 float,double 同時字元型和整型還可以繼續分為帶符號的和不帶符號的,預設情況下都是帶符號的,如果想使用不帶符號的,則使用時帶上 unsigned說明即可,如果是帶符號的,那麼最高位將表示符號位...