查看當前機器的各數據類型的取值範圍,可查看文件「limits.h」函數
2.2.四、枚舉類型spa
enum 枚舉名 { 枚舉值表 };
在32位機中地址長度都是32位,所以,不管哪一種類型的指針都佔4個字節。指針
二、指針常量code
指針常量只有惟一的一個NULL(空地址)。對象
全局變量內存
(1)全局變量的定義和全局變量的聲明並非一回事,全局變量定義必須在全部的函數以外,且只能定義一次,其通常形式爲:作用域
[extern] 類型說明符 變量名, 變量名...
extern能夠省略。it
全局變量的聲明出如今要使用該變量的各個函數內。在整個程序中,可能出現屢次。編譯
extern 類型說明符 變量名, 變量名...
全局變量在定義時就已經分配了內存單元,而且可作初始賦值。全局變量聲明時不能再賦初始值,只是代表在函數內要使用某外部變量。class
(3)全局變量的內存分配是在編譯過程當中完成的。
三、變量的存儲方式
靜態存儲 和 動態存儲
生存期 和 做用域
存儲類型:
一、函數內凡未加存儲類型說明的變量均視爲自動變量,也就是說自動變量可省去說明符auto。
靜態局部變量 和 靜態全局變量
const int *a; int * const a;
第一條,修飾指針a所指向的地址,沒法經過指針a來修改其指向的對象的值。可是a這個指針自己的值(地址)能夠改變,即指向其餘對象。
第二條,修飾的是指針a。(地址)不可改變。
單目運算符;運算對象是變量或數據類型;結果爲一個整數。
變量佔用內存空間的字節數。
結構體
struct 結構體名 { 類型 成員名; 類型 成員名; ... } 結構體變量名;
結構體名是結構體的標識符,不是變量名。
struct person { char name[8]; int age; } p1;
struct person { char name[8]; int age; }; struct person p1;
void *malloc(size_t size); free釋放
_attribute_語法格式:
_attribute_ ((attribute-list))