常量类型(五种):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.