c語言中的資料型別

2021-08-28 14:24:17 字數 2579 閱讀 6187

c語言中資料型別可分為基本型別,結構體型別,指標型別和空型別:

1資料型別:

1基本型別:

1.1字元型(本質上也是一種整型變數):

char : 1位元組   -128~127

unsigned char : 1位元組  0~255

由於字元是按其**(整數)形式儲存的,因此c99把字元型資料作為整型的一種。

1.1.1字元與字元**:

字符集(包括ascii字符集):字母,數字,專門符號,不能顯示的字元(如空'\0',回車'\r')

注意 字元『1』,整數字元1是不同的:'1'實際上表示以1的sacii碼值(49)儲存的二進位制數,而1就是整數1的二進位制數儲存的。

1.1.2字元變數(用char定義的變數):

如:char buf=『?』;表示將?的ascii碼值(63)賦給變數buf。

在輸出時字元變數的值時,可以選擇以十進位制整型輸出或以字元型輸出。

當用printf("%d,%c\n",buf,buf);列印時輸出,63和?。

1.2整型(不同的編譯器位元組大小不同:如tuboc2.0編譯器中int是2位元組,現如今int型基本上都是4位元組):

型別符號

長度(位元組)

取值範圍

整型int

2-32768~32768(即-2^15-2^15-1)

4-2^31~2^31-1

長整型long int或long

4-2^31~2^31-1

雙長整型

long long(int)

8-2^63~2^63-1

無符號雙長整型

unsigned long long(int)

80~2^64-1

短整型short int或short

2-2^15~2^15-1

無符號整型

unsigned int

20~2^16-1

40~2^32-1

無符號長整型

unsigned long int 或unsigned long

40~2^32-1

無符號短整型

unsigned short int或unsigned short

20~2^16-1

1.2實型(浮點型)

型別位元組數

有效資料位(小數點後)

數值範圍(絕對值)

float(單精度)46

0以及1.2*10^-38~3.4*10^38

double(雙精度)815

0以及2.3*10^-308~1.7*10^308

long double(和編譯器有關,不過一般是16位元組)815

0以及2.3*10^-308~1.7*10^308

1619

0以及3.4*10^-4932~1.1*10^4932

1.3列舉型

通過預定義列出所有值的識別符號來定義乙個有序集合,這些值的次序和列舉型別說明中的識別符號的次序是一致的。列舉型別的形式:(識別符號1,……,識別符號n)

例如: type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)

列舉元素只能是識別符號,而不能是數值常量或字元常量。例如以下的定義是錯誤的:

type daystype=('sun','mon','tue','wed','thu','fri','sat')

列舉元素是識別符號,不要把作為列舉元素的識別符號視作變數名,它不能被賦值。同乙個列舉元素不能出現在兩個或兩個以上的列舉型別定義中。例如以下的定義是錯誤的:

type daytype1=(monday,tuesday);

daytype2=(monday,wednesday);

可以將列舉型別的定義和變數的定義結合在一起。例如:var a:(monday,tuesday,sunday)

列舉型別屬於順序型別。根據定義型別時各列舉元素的排列順序確定它們的序列,序列號從0開始

例如:已經定義daystype

ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday

但是列舉型別中的第乙個元素沒有前趨,最後乙個元素沒有後繼。turbo pascal不允許直接讀寫列舉值,所以列舉值的輸出常用case語句間接的輸出。列舉值的輸入,則要一一判斷讀入字元是否是列舉型別的識別符號。若是才能賦給列舉變數,否則就會出錯。

例如:列舉值的輸出

case day of

sunday:write('sunday');

monday:write('monday');

tuesday:write('tuesday');

wednesday:write('wednesday');

thursday:write('thursday');

friday:write('friday');

saturday:write('saturday');

end;

以上是個人學習總結,有錯誤或不足之處還請指出!

C 語言中的資料型別

1.1基本資料型別 字元型 char 短整型 short int 整型 int 長整型 long int 單精度浮點型 float 雙精度浮點型 double 1.2復合資料型別 陣列,結構體。字元型 char a 1 1個位元組 短整型 short int 2個位元組 整型 int 4個位元組 長...

C語言中的資料型別

常量,表示一些固定的資料 1 整型常量 int 包括了所有的整數,比如6 27 109 256 10 0 289等 2 浮點型常量 float double 浮點型常量分為double和float兩種資料型別 u double 雙精度浮點型,其實就是小數。比如5.43 2.3 0.0等 注意,0.0...

C語言中的資料型別

儲存方式 編譯系統給int型資料分配2個位元組或者4個位元組 在儲存單元中的儲存方式是使用整數的補碼形式存放。正數的補碼是是此數的二進位制形式 負數的補碼是負數的絕對值的二進位制形式按位取反再加1 在存放整數的儲存單元中,最左邊一位是用來表示符號的,該位為0表示正數,該位為1表示負數。表示範圍 如果...