1、const 说明
int const *pci = &a;
这是一个指向整型常量的指针,可以修改指针的指,但是不能修改它所指向的指。相比之下:
int * const cpi = &b;
则是一个指向整形的常量指针。意味着指针是常量,它的指无法修改,但可以修改它所指向的指。
const 在*号左边意为 point to const ,相对的在右边 const point。所以以下操作是合法的。
pci = &c ; *cpi = c;
2、 static 说明
当它用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的连接属性,从external改为internal,但标识符的存储类型和作用域不受影响。用这种方式声明的函数或变量只能在声明他们的源文件中访问。
当它用于代码块内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量。但变量的连接属性和作用域不受影响。用这种方式声明的变量在程序之前创建,并在程序的整个执行期间一直存在。而不是在代码块开始执行时创建,执行结束后销毁。