int i,j,k=0; //表示定義了3個整形變量 char c; //定義了一個字符型c 當然,一個聲明語句中多個變量可拆開來寫,如上面的聲明等價於 int i=0; int j=0; int k=0; char c; 任何變量的聲明都可以使用const限定符限定。限定後值不能被修改,例如: #include <stdio.h> int main() { const int num=20; num=num+2; printf("%d ",num); return 0; } 錯誤:l-value specifies const object #include <stdio.h> int main() { volatile const int num=20; int *p=# *p=10; printf("%d ",num); return 0; }
結果:10 volatile防止編譯器對代碼進行優化,提醒編譯器它後面所定義的變量隨時都有可能改變,因此編譯後的程序每次需要存儲或讀取這個變量的時候,都會直接從變量地址中讀取數據。如果沒有volatile關鍵字,則編譯器可能優化讀取和存儲,可能暫時使用寄存器中的值,如果這個變量由別的程序更新了的話,將出現不一致的現象。