const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰 的对象为常量(immutable)。 我们来分情况看语法上它该如何被使用。 1、函数体内修饰局部变量。 例: void func(){ const int a=0; } 首先,我们先把const这个单词忽略不看,那么a是一个int类型的局部自动变量, 我们给它赋予初始值0...
const可以用来修饰变量,比如 const int a;那么变量a的值就会编译器强制保护,a的值无法被修改,此时变量a相当于一个常量 const 可以用来修饰指针,比如const int *p;此处,p指向的int型数据被const保护,所以无法通过指针去修改这个int型数据 又比如int * const p;此时p被const保护,p本身无法被修改 static 问:static...
const 通常用在函数形参中,如果形参是一个指针,为了防止在函数内部修改指针指向的数据,就可以用 const 来限制。 我们自己在定义函数时也可以使用 const 对形参加以限制,例如查找字符串中某个字符出现的次数: 运行结果: 3 4、const 和非const类型转换 const char *和char *是不同的类型,不能将const char *类型...
C语言中static,const和static const 的区别 1.const规定了一个变量在它初始化值之后,值不能再改变,也就是只读。 来看个例子: 2.static在函数内的时候,表明这个变量在函数的生命周期结束之后也不会被释放。 static使用测试 在第一次调用test()时,如果static int b没有被我赋初值,也会被默认赋值成0。然后执行...
也就是说 const int a = 1; 与 int const a = 1;是等效修饰 (3)还有一种是指针常量(指针的常量态),也就是指针区是常量区,不能被重写赋值为其他地址,只能单一指向某一个区域 int a = 1; int * const p = &a; 此时只说明的,指针是常量的,但是指向的区域不是常量的, ...
const (int *) value; //(int *)是一种type,value不可变,*value可变 //逻辑上这样理解,编译不能通过,需要tydef int* NewType; const int* const value;//*value,value都不可变 (5)volatile 表明某个变量的值可能在外部被改变,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保...
int const * x:常量指针; int *const x:指针常量。 4,指向常量的常量指针,这种指针指向的位置不能改变,指向的值也不能改变,但是依然可以通过其他应用来改变。 /*xutopia*/#include"stdio.h"intmain(){intx=6;inty=8;constint*constp=&x;printf("x=%d,y=%d\r\n",x,y);printf("*p=%d\r\n...
指针方面,const可以区分常量指针(int const * x)和指针常量(int *const x),前者限制指向的值不变,后者限制指针本身不可改变。volatile关键字用于标记可能随时改变的变量,防止编译器优化导致数据不一致,确保每次读取都是最新值,适用于实时系统或硬件交互。总的来说,static、const和volatile是C语言...
const 是常量, 也就是只读的, 是一个"右值"比如 const int iRet = 2 ;iRet = 3 ; // 这句是...
const int *p; int const *q; int * const r= &n; p和q都是一样,两个指针,指向的变量为常量,r本身是一个常量,不能再指向其他位置。 参考 语言中auto,register,static,const,volatile,extern的区别 -http://blog.csdn.net/sdwuyulunbi/article/details/8469058 ...