具体结合代码来看,环境——VS 2022.
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
//(const)常量指针
const int * x = a;
*x = b;(错误示范)
x = &b;
//此时(*x)这个指针变量指向的内容(*X)不可变,但指针变量本身是可变的
//指针(const)常量
int* const y = a;
*y = b;
y = &b;(错误示范)
//这种情况下该指针变量指向的内容(*y)可变,但指针变量本身是不可变的
return 0;
}
助记小提示:
这里可以把单词 const 译为常量,比如const int (* x )看成 常量指针 :指针变量指向的内容(* x)是不可修改的,指针变量本身(x)是可以修改的;
同理,指针常量 int * (const y ) ,指针常量y本身不可修改,而指针变量指向的内容(*y)是可以修改的。