通过c语言来理解static及const
一:static的理解
(1)从存储空间来理解分为:程序区、静态�存储区、动态存储区。 其中静态存储区为存储静态变量,变量从创建开始就一直存在,直到程序结束销毁;动态存储区,存储动态变量,如函数中创建的动态变量,随着函数结束就销毁了。
(2)对于一个数据的定义,需要指定两种属性:存储类型和数据类型。
static int a; (static为存储类型,int 为数据类型) auto char c; (auto为存储类型,char为数据类型)
(3)按照作用域来分:(字写得不好看。。。)
(4)静态变量在程序整个运行期间都不会释放,对静态变量只在编译时赋初值一次,以后每次调用函数时,不再重新赋初值,而只是保留上一次函数调用结束时的值。
二:const的理解
(1)const是一个c语言的关键字,作用:是限定一个变量不允许被改变;好处:使用const在一定程度上可以提高程序的安全性和可靠性。
(2)如下面的例子:
const int a = 0;
const作为一个类型限定词,和int有相同的地位。
我们要明白const修饰的对象是谁,const修饰的是变量,int只是类型,所以const修饰的是变量a,而此时a是不可被改变,不可被赋值的。
const int *p; *p指向的变量不可变 int * const p; p的值不可变