面试题答案
一键面试指针常量概念
指针常量是一个常量,它的值是一个指针,一旦初始化后,其指向就不能再改变。也就是说,指针常量在定义时必须初始化,之后其指向的内存地址不能被修改,但可以通过该指针修改其所指向内存中的值。
代码示例
#include <stdio.h>
int main() {
int num = 10;
// 定义一个指向整型变量的指针常量
int * const ptr = #
// 通过指针常量修改整型变量的值
*ptr = 20;
printf("num的值: %d\n", num);
return 0;
}
尝试修改指针常量本身的情况
如果尝试修改指针常量本身,例如:
int main() {
int num1 = 10;
int num2 = 20;
int * const ptr = &num1;
// 尝试修改指针常量ptr的指向,这会导致编译错误
ptr = &num2;
return 0;
}
上述代码在编译时会报错,因为指针常量一旦初始化,其指向不能改变。不同编译器的报错信息可能有所不同,但大致意思都是不允许对常量指针重新赋值。