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

關鍵字

sizeof :查看內存容量的大小的一個工具

 sizeof:是一個關鍵字而不是一個函數,其用法很類似於一個函數
sizeof陷阱之一
#include <stdio.h>
int main()
{
	int i=3,j;
	j=sizeof(++i+ ++i);
	printf("%d %d",i,j);
	return 0;
}//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語言編譯器優化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章