敢問C語言大神,這張表中的資料型別指的是變數的還是常量的

2021-05-21 05:08:35 字數 1679 閱讀 4854

1樓:億丁智慧科技

變數。一、c語言中定義變數的資料型別(比如:int,char)

程式執行時,記憶體分為堆區、棧區、靜態區、文字常量區和**區。

如果是區域性變數,比如在main函式或其他函式內定義的int之類,是分配在棧區的。每呼叫一個函式,系統會在棧區當前棧頂自動分配一塊記憶體,這塊記憶體的大小和你這個函式裡的區域性變數有關,而且有大小限制,所以不可能在main裡定義一個int a[1000000];的。定義在一起的區域性變數,其記憶體也是相鄰的。

如果是程式設計師malloc得到的記憶體,是來自堆區的。這裡的記憶體分配是個很複雜的演算法,重點是迅速找到一個大小合適的空閒記憶體,而且不產生過多碎片。這種分配的記憶體基本上是隨機的。

定義的變數型別不同,對**和exe的大小沒多大影響,只和執行exe時佔用的記憶體大小有關。

二、c語言中的數值常量可以簡單的分為如下兩種整型常量和浮點數常量:

一. 整型常量 如6,27,-299

在 c 語言中,整型常量分為十進位制整型常量、八進位制整型常量和十六進位制整型常量三種表示形式。

(1)十進位制整型常量

這種常量只能出現 0~9 的數字,且可帶正、負號。例如:

0 1 364 28 -34

(2)八進位制整型常量

這種常量是以數字 0 開頭的八進位制數字串。其中數字為 0~7。例如:

0111(十進位制 73) 011(十進位制 9) 0123(十進位制 83)

(3)十六進位制整型常量

這種常量是以 0x或 0x開頭的十六進位制數字串。其中每個數字可以是 0~9、a~f或 a~

f 中的數字或英文字母。例如:

0x11(十進位制 17) 0xa5(十進位制 165) 0x5a(十進位制 90)

二. 浮點型常量 如5.43,-2.3,5.67f

實型常量有兩種表示形式:一種是十進位制小數形式,另一種是指數形式。

(1)十進位制小數形式

十進位制小數形式為包含一個小數點的十進位制數字串。

此類實型常量小數點前或後可以沒有數字,但不能同時沒有數字。例如:

3.14159, .89, 56.0, 78., -3.0, 0.0

(2)指數形式

指數形式的格式由兩部分組成:十進位制小數形式或十進位制整型常量部分和指數部分。

其中指數部分是在 e 或 e(相當於數學中冪底數 10)後跟整數階碼(即可帶符號的整數指

數)。例如:

1e15 //表示數值 1×10

150.35e+1 //表示數值 0.35×10

178e-1 //表示數值 78×10

-1下面是不正確的實型常量。

e15 //缺少十進位制小數部分

0.35e //缺少階碼

78e-1.2 //不是整數階碼

c語言資料型別中整型、實型、字元型等等這些是什麼意思?和常量中的整型常量有關嗎?感覺有點染

2樓:枼之影

常量—整型常量(整數)

浮點型(實型)……(小數)

字元……(字母等)

字串……

變數—整型變數(一樣是整數)

浮點型……

字元……

……變數有它的命名規則,要字面表達用途,不像常量有明確分類,以上只是我個人的……

3樓:333四

有點關係,常量和變數相對應,是對資料型別的進一步限制

c 語言中類中的靜態資料成員為什麼必須在類體外初始化

可以通過以下幾個例子更形象的說明這個問題 test.cpp include class a int main 編譯以上 會出現 對 a a 未定義的引用 錯誤。這是因為靜態成員變數a未定義,也就是還沒有分配記憶體,顯然是不可以訪問的。再看如下例子 test.cpp include class a i...

c語言中輸入資料到陣列中,求大神請教

include int main void printf 輸入身份證號 n scanf s ca int i 0 while ca i 0 return 0 a中存放的就是你需要的資料。如果不能滿足,版歡迎追問權。可以定義一個字串陣列。然後gets 字串名 就可以輸入一串數字嘛。學習進步 用c語言怎...

求用C語言或C 編寫的資料結構中的快速排序 麻煩寫出大概的設計過程,語句的含義 謝謝啦

include include define size 20 typedef structrecord void initrecord record h,int a int qkpass record r,int low,int high while i r ele i i if iele j r ...