C語言學習(一) C語言關鍵字及運算子

2021-09-28 16:00:45 字數 775 閱讀 6571

sizeof :檢視記憶體容量的大小的乙個工具

sizeof:是乙個關鍵字而不是乙個函式,其用法很類似於乙個函式
sizeof陷阱之一
#include int main()

//i=3 j=4

sizeof是乙個編譯時刻就起效果的運算子,在其內的任何運算都沒有意義,j = sizeof(++i+++i); 在編譯的時候被翻譯成 j=sizeof((++i+++i的資料型別)) 也就是 j = sizeof(int); 也就是 j= 4; (32bit系統,如果是16位系統,則j=2) 然後才會繼續編譯成最終的程式,當然在最終程式執行的時候,自然不會執行任何++i了

auto:自動變數 除了全域性變數 其餘都放在棧裡面

register:將變數存放在暫存器中,cpu呼叫速度極快(常用在經常呼叫的變數中)

static:靜態變數 只宣告一次,程式執行完後釋放其記憶體(類似於全域性變數)

static的作用
1、修飾區域性變數使用static將其區域性靜態化,該區域性變數將會在靜態資料段

(存放局、靜態變數和**段中程 序執行結束才會被釋放)

2、修飾全域性變數——防止重新命名,限制變數名只在本檔案內起作用

3、修飾全域性函式——防止重新命名,限制函式只在本檔案內起作用

const的作用
唯讀,建議性 不具備強制性
volatile關鍵字
防止c語言編譯器優化

C語言學習筆記 (一) C語言的關鍵字

c語言共有32個關鍵字。都是小寫字母。c關鍵字的必要性 關鍵字是程式設計中 必須包含的部分,編譯器在編譯c 的時候,必然要將c 進行斷句,將 分割成不同部分,將這些部分分別進行解析和編譯。int a 10 int是關鍵字,編譯器看到它出現,會將它後面的字元作為整型變數名來處理。也就是說,關鍵字是編譯...

C語言學習之關鍵字

在我們講解關鍵字之前,我們先來了解一下宣告跟定義的區別 定義 所謂定義就是 編譯器 建立了乙個物件,並為這一物件分配了記憶體並且給它取了乙個名字,這個名字就是我們經常所說的變數名或者物件名,乙個變數或者物件在一定區域內 比如函式內 全域性等 只能定義一次 宣告 有兩重含義 1 告訴編譯器,這個名字已...

c語言學習筆記 關鍵字

auto 定義變數為區域性變數,在函式中定義變數時預設為auto static 定義靜態區域性變數,使用static修飾的變數將被放置到資料段,為空鏈結 register 告知編譯器將盡可能變數存放到暫存器中,但該關鍵字只是乙個請求,並不能保證執行,linux中就有乙個變數被此關鍵字修飾 gd,被此...