日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【C语言】06-基本数据类型

發布時間:2025/4/16 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C语言】06-基本数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言有豐富的數據類型,因此它很適合用來編寫數據庫,如DB2、Oracle都是C語言寫的。

C語言的數據類型大致可以分為下圖中的幾類:

回到頂部

一、變量

跟其他語言一樣,C語言中用變量來存儲計算過程使用的值,任何變量都必須先定義類型再使用。為什么一定要先定義呢?因為變量的類型決定了變量占用的存儲空間,所以定義變量類型,就是為了給該變量分配適當的存儲空間,以便存放數據。比如你是char類型,我就只給你分配1個字節就夠了,沒必要分配2個字節、3個字節乃至更多的存儲空間。

下面的表格描述了在16位編譯器環境下,基本數據類型所占用的存儲空間,了解這些細節,對以后學習指針和數組時是很有幫助的

需要注意的是:

1.局部變量的使用跟Java稍微有點不一樣

1> 在Java中,你聲明了一個局部變量后,如果沒有經過初始化賦值就使用該變量,編譯器直接報錯

第9行報錯了,因為變量a沒有初始化

?

2> 在C語言中,你聲明看一個局部變量后,沒有經過初始化賦值是可以使用的

1 #include <stdio.h> 2 3 int main() 4 { 5 int b; 6 printf("%d", b); 7 return 0; 8 }

但這是很危險的,不建議這樣做。大多數人應該覺得變量b打印出來應該是0,其實不是。因為系統會隨意給變量b賦值,得到的是垃圾數據。

上述代碼的打印結果是:因此,局部變量還是必須先進行初始化賦值,然后再使用,這樣才是最安全的做法。

* 如果是全局的int類型變量,系統會默認賦值為0

?

2.char的取值范圍是:ASCII碼字符?或者?-128~127的整數

于是,使用char存儲大寫字母A有2種賦值方式:

// 方式1 char c = 'A';// 方式2 char c = 65;

上面兩種方式是等效的,因為大寫字母A的ASCII碼值剛好為65。點擊查看ASCII碼表的所有值

?

3.char只能存儲一個字符

漢字或者字符串需要用字符數組來存儲,因為一個漢字占了2個字符,一個字符串是由一個或者多個字符組成的。

因此,下面的寫法都是錯誤的:

char c1 = '我'; char c2 = '123'; char c3 = "123";

?

回到頂部

二、類型修飾符

我們還可以在基本數據類型的前面加一些修飾符,也有人稱之為限定符,一樣的意思。

有以下4種類型修飾符:

  • short? 短型
  • long? 長型
  • signed? 有符號型
  • unsigned? 無符號型

1.用法演示

這些修飾符最常是用來修飾int類型(可以省略int)

1 // 下面兩種寫法是等價的2 short int s1 = 1;3 short s2 = 1;4 5 // 下面兩種寫法是等價的6 long int l1 = 2;7 long l2 = 2;8 9 // 可以連續使用2個long 10 long long ll = 10; 11 12 // 下面兩種寫法是等價的 13 signed int si1 = 3; 14 signed si2 = 3; 15 16 // 下面兩種寫法是等價的 17 unsigned int us1 = 4; 18 unsigned us2 = 4; 19 20 // 也可以同時使用2種修飾符 21 signed short int ss = 5; 22 unsigned long int ul = 5;

?

2.short和long

1>?short和long可以提供不同長度的整型數,也就是可以改變整型數的取值范圍,比如short的取值范圍是-32768~32767,long的取值范圍就是-2147483648~2147483647

2> 當然,數據的存儲長度也會跟著變化。比如,在64位編譯器環境下,short占2個字節(16位),int占4個字節(32位),long占8個字節(64位)。世界上的編譯器林林總總,不同編譯器環境下,取值范圍和占用的長度是不一樣的,不過幸運的是,ANSI \ ISO制定了以下規則:

* short跟int至少為16位(2字節)

* long至少為32位(4字節)

* short的長度不能大于int,int的長度不能大于long

* char一定為為8位(1字節),畢竟char是我們編程能用的最小數據類型

?

3.signed和unsigned

1> signed代表有符號,包括正數、負數和0;unsigned代表無符號,只包括正數和0。比如,signed的取值范圍是-32768~32767,那么unsigned的取值范圍是0~65535,當然,不同的編譯器有不同的取值范圍

2> 其實,signed和unsigned的區別就是它們的最高位是否要當做符號位,并不會像short和long那樣改變數據的長度,即所占的字節數,

?

4.signed、unsigned也可以修飾char,long還可以修飾double

unsigned char c1 = 10; signed char c2 = -10;long double d1 = 12.0;

?

三、不同編譯器環境下基本數據類型的存儲長度

紅色的代表常用的數據類型

?

總結

以上是生活随笔為你收集整理的【C语言】06-基本数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。