關鍵字
register:這個關鍵字請求編譯器盡可能的將變數存在
cpu內部暫存器中而不是通過記憶體定址訪問以提高效率。注意是盡可能,不是絕對。你想想,乙個
cpu的暫存器也就那麼幾個或幾十個,你要是定義了很多很多
register
變數,它累死也可能不能全部把這些變數放入暫存器吧,輪也可能輪不到你。
必須為單一值,長度小於等於int,並且不能用&獲取
register
的位址(但是我自己在
dev上測試用了
register
仍然可以列印位址)
register int a;
static
static int j;
void fun1()
void fun2()
int main()
//i=10;j=1;
return 0; }
注意數字1和字母
l,注意
0和字母o;
sizeof()例子
sizeof 不是函式,計算物件所佔空間大小
memset(a,0,sizeof(a));
int b[100];
void fun(int b[100])
int main()
補碼-9 原碼
00001001
,反碼:取反,
11110110
補碼:反碼+1,
11110111;
switch (val)
對於if (a==0(其他常量
)) 的時候,為了避免寫成乙個
=而編譯不報錯,應該把常量寫在前面
if (0==a)
return ;可以理解為返回
return void;
const int *p;//=int const *p 即
p可變,
p指向的物件不可變
例子int a=10;
const int *p=&a;
*p = 20; //此句會報錯因為不能更改
*p,去掉
coonst
才可以
a=20;//注意此句不會報錯
cout<
cout<<*p<
int * const p ; //p不能更改,但
p指向的值能更改
例子int a=10;
int *const p=&a;
p=null; //此句報錯,
p為常量,不能更改
*p = 20; //此句可以
cout<
cout<<*p<
const修飾函式的引數表明這個引數不能被修改
const修飾函式返回值表示返回值不能被更改,
返回值也要相應的付給乙個常量或常指標。
(只有指標適用
),如果傳遞乙個值,即下面的例子返回值是int,那麼
const
沒有作用
int b[100];
int *p;
const int * fun()
int main()
volatile 關鍵字
volatile int i;
int j=i;
int k=i;
表明i易變,那麼每次讀取
i都會從記憶體裡重新取
i 的值,否則(有的
)編譯器會自己優化,直接用上一次的i
struct 大小,預設預留乙個
byte
,同時還要考慮記憶體對齊
struct a;
struct b;
struct d;
int main()
列舉類enum col;
int main()
y=x/*p;
原本想表示x / (*p);但是編譯器會把
/*看成注釋的開始而報錯
花括號打包作用,與外界絕緣
char a[10]=;//ok
char b[10] ;//不可以
cout<
int main()
cout< }
用巨集定義表示式一定不能省略括號
int a[10];
cout《陣列首元素的位址
cout<<&a《陣列的首位址
列印的值是一樣的,
函式指標
char * (*fun1)(char x); //函式指標
char * *fun2(char x);
// 返回值是
char **
的函式
char *fun3(char x); //返回值是
char *
的函式
char *fun(char *x)
int main()
C語言深度解剖 筆記4
1最易變的關鍵字 volatile 型別修飾符 用volatile修飾的變數表示可以被某些編譯器未知的因素更改,比如作業系統 硬體或者其他執行緒等。遇到這個關鍵字宣告的變數,編譯器對訪問該變數的 就不再進行優化,從而可以提供對特殊位址的穩定訪問。比如 volatile關鍵字告訴編譯器某變數是隨時可能...
c語言深度解剖筆記1
2016.8.14 dage 複習內容 c語言深度解剖筆記1 有三大類 算術運算子 關係運算子與邏輯運算子,還有位運算子等,相同優先順序運算子,從左至右依次運算。注意字尾運算優先順序高於字首。因此 i 應解釋為 i 基本表示式 1級 最高 字尾表示式 2極 單目 一元運算 3級 強制型別表示式 4級...
C語言深度解剖
1.關鍵字 是編譯器能認識的特殊字串符號。c語言共有32個關鍵字,含sizeof,計算物件所佔記憶體空間的大小。2.定義 建立乙個物件並分配一塊記憶體。3.宣告 告訴編譯器,名字已經匹配到了一塊空間,別的地方不能用它來作為變數名或物件名。宣告沒有分配記憶體,可以出現多次宣告。4.區域性變數 也叫自動...