常量類型(五種):spa
字面常量(2,3,6....) ; enum 定義的枚舉常量;操作系統
字符常量('a','b'....) ; const 定義的常變量;指針
#define 定義的 宏常量.內存
' * ' 的功能:變量
1): * 在兩個變量或常量之間 => 表示乘法 (a*b,a*10 ...);引用
2):* 左邊是類型,右邊是變量時 => 表示聲明 聲明該變量爲一個指針變量;co
3)* 左邊爲空右邊爲指針變量時 => 表示解引用(指向) .字符
指針相關:background
1) 定義指針變量時,系統會將*和變量相結合 =>(int* p,r;//定義了一個指針變量p,一個整形變量);枚舉
2) 定義/使用指針時要注意(野指針\空指針\失效指針)尤爲是野指針!所以要將指針初始化(*p=NULL);
3) 指針大小在32位操做系統佔4字節,64位操做系統佔8字節;
4) 使用指針變量,要明確指針自己的值(存儲的是地址) , 以及指針指向的值(指針變量所指的實體)(解引用);
5) 指針類型決定了指針的加一的能力.(p = p + 1 => p = p + sizeof(typename)*1);
6) 指針類型決定了指針對內存操做的能力.
const 和指針
const int *p = &a const 在 * 的左邊,const 修飾的是指針的指向能力.等價於 int const *p = &a,即不可更改*p的值,可是能夠更改p自己的值: p=&b true,但*p = 200 false
int * const p =&a const 在 * 的右邊,const 修飾的是指針自身的值,即不可更改p自己的值,但能夠更改*p的值 p=&b false,但*p = 200 true.