a1,a2:
其值在其作用域內可以改變的量被稱為變數
變數有名字、一定的儲存空間
變數必須要定義,有位址(對應儲存空間的首位址)
變數依據定義的型別分類,它的大小由型別決定。
a3:變數所對應的儲存空間內存放的二進位制序列變數的值不會因變數型別改變而改變
當變數轉換為對應型別時,記憶體區域的二進位制序列以該型別的形式譯出來
a4:變數在記憶體中存放和它的值沒有關係,而是和它的型別相關。乙個二進位制序列對於計算機本身沒有任何意義,只有具體到它的型別或出現在合適的場合時,才能代表具體的意義。
例如:
(1)
int add = 0x12345678;
int *p = (int*)add;
測試對整型和位址型別轉換。add是乙個整型變數,add裡是0x12345678的二進位制數,以十進位制表現出來。p是乙個整形整型指標變數名,p裡面是以0x12345678的二進位制數的位址。 星號p是通過星號去訪問位址0x12345678這個位址處的資料。(int*)add是乙個指標,(int*)的作用是把add轉化成指向整型變數的指標*。&p是取出整型指標變數p的位址,因為p是乙個變數,它也有自己的位址。
(2)
#define pi 3.14
printf("%d\n",pi);
結果為1374389535,這是因為「%d\n」只說明按照整型的記憶體格式對資料進行讀取。
a5:區域性變數又稱內部變數,區域性變數是在函式內作定義說明的,其作用僅限於函式內。
a6:全域性變數又稱外部變數,是在函式外部定義的變數,它不屬於哪乙個函式,它屬於乙個源程式檔案,其作用域是整個源程式。
全域性變數說明符extern,乙個函式前定義的全域性變數,在該函式內使用可不再加以說明.
a7:const修飾變數,就意味著變數裡的資料可以被訪問,不可以被修改。
分辨修飾變數的方法:去掉型別後看const修飾誰
a8:typedef為c語言的關鍵字,主要用來給變數乙個易記且意義明確的新名字和簡化一些比較複雜的型別宣告。
typedef比#define更好,因為#define只是簡單的字串替換。
a9:
enum enum_type_name
enum_variable_name;
enu_type_name是型別名,enum_variable_name是該型別下的乙個變數,其值只能是大括號中的乙個,否則編譯會報錯。
該型別變數還可以給其中的常量符號賦值,如果不賦值則會從被賦初值的那個常量開始依次加1,如果都沒有賦值,它們的值從0開始依次遞增1。
a10:
聯合與結構相似,在結構中各成員有各自的空間,一格結構變數的總長度是各成員長度之和。
在聯合中,各成員共享一段記憶體空間,聯合變數的長度等於各成員中最長的長度。
聯合變數可被賦予任一成員值,但每次只能賦一種值,賦入新值則衝去舊值。
C語言學習 資料型別
題外話 工作了快一年時間了,感覺只是對mtk平台的開發流程熟悉了而已,而程式設計水平並沒有提高多少。於是乎決定實習的最後兩個月時間給自己充充點,同時溫習一下以前的知識。今天開始資料型別的學習。接下來的都是平時理解不是很深刻的知識點,一些很熟悉的就不涉及了。c語言的資料結構是以資料型別形式出現的。c的...
C語言學習 資料型別
在c語言中,資料型別可以分為以下幾種 型別描述 基本型別 c語言中的算術型別,包含整數型和浮點型 列舉型別 c語言中的算術型別,用來定義在程式中只能賦予其一定的離散整數值的變數。void型別 型別說明符,表示沒有可用的值 派生型別 指標型別 陣列型別 結構型別 公用體型別 函式型別 型別儲存空間 值...
C語言學習 資料型別
資料型別 資料型別 包括兩個方面的內容 資料的表示和對資料的加工操作。在c語言中,把整型 實型字元型稱為基本的資料型別,又稱整型和實型為數值型。1.變數與常量 關係 靜中有動,動中有靜。相互依賴,相互影響。要理解實質,不只是字面上理解 1.2變數 什麼是變數 其值在作用域內可以被改變的量。每個變數都...