const 关键字的使用在指针和指针指向的内容时,可能会导致混淆。const 关键字的位置决定了它修饰的是指针本身还是指针指向的内容。const int * 表示指向常量的指针,而 int * const 表示常量指针。可以同时使用 const int * const 来表示一个常量指针,它指向常量数据,即指针的地址和指向的值都不能改变。 1、const ...
const int *和int * const的区别【C语言/指针】 const修饰,限制了对变量读/写权限 对于以下代码: inta =1;int* pa = &a; ▶️只要const在*前面,那么限制的*p,p的地址可以改,但p指向的对象不能通过p来改变 inta =1;intconst* pa = &a;//等价于constint* pa = &a; ▶️只要const在*后面,...
- 通过使用const修饰函数返回值,可以向调用者明确表明返回的值是一个常量,不能进行修改操作。- 声明带有const修饰的函数返回值的语法为:const 数据类型 函数名(参数列表)。const修饰符也可以修饰函数的返回值,返回值不可被改变。例如:const int Fun(void);在另一连接文件中引用const只读变量:extern const int...
简介:const int *和int * const的区别【C语言/指针】 const修饰,限制了对变量读/写权限 对于以下代码: int a = 1;int* pa = &a; ▶️只要const在*前面,那么限制的*p,p的地址可以改,但p指向的对象不能通过p来改变 int a = 1;int const * pa = &a;//等价于const int * pa = &a; ▶...
const关键字修饰函数参数,对参数起限定作用,防止其在函数内部被修改。所限定的函数参数可以是普通变量,也可以是指针变量。 和const修饰指针差不多。 void fun(int* const i){i++; //error,i的值不可修改} void fun(const int* p){(*p)++; //error,p指向空间的值不可修改} ...
inta=5b=10,c=15;constint*p;//p 是指向 整型常量 的 指针/*根据顺时针螺旋法则,p是指针,往左边是const int* 说明是指向整形常量的指针*/p=&a;// 说明p指向什么地方。(p指向a的地址)/*错误写法*/*p=6;// 不可以通过指针p改变a的值。p=&b;// 但是指针p却可以被改变。int*constt=&c;//t 是...
constchar*p;//*p是const,p可变:const 后面紧跟的是char,所以*p是一个char字符,不可变const(char*) p;//p是const,*p可变:const 后面紧跟的是(char *)这个整体,所以p是char*类型,不可变。char*constp;//p是const,*p可变:const 后面紧跟的是p,所以p不可变constchar*constp;//p和*p都是const:第一个const...
const char *ptr 表示的是指向常量的指针,不能通过该指针去修改指针所指向地址中的内容,但是可以修改该指针的指向。char const *ptr 和const char *ptr 等价。 char * const ptr 表示的是指针的指向不可以被修改,但是可以修改指针指向地址中的内容。
char* const p; // p是const,*p可变:const紧跟的是p,所以p不可变。 char const* const p; // p和*p都是const:第一个const紧跟的是*,不能表明修饰的内容,将后面整体的(* const p)看成一个整体,那就说明*p不可变,第二个const后面紧跟的是p,所以p不可变。
extern:声明变量是在其他文件正声明(也可以看做是引用变量) register:声明积存器变量 static :声明静态变量 其它关键字(4个): const :声明只读变量 sizeof:计算数据类型长度 typedef:用以给数据类型取别名(当然还有其他作用) volatile:说明变量在程序执行中可被隐含地改变...