You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指向常量的指针与地址固定的指针区别及定义方法

C语言定义固定指向指针的方法

你需要把const关键字放在指针运算符*的右侧,即可修饰指针本身使其存储的地址不可修改,正确语法如下:

int* const p2 = &a;

特性说明

  • 指针本身的指向初始化后无法修改:执行p2 = &b;会直接触发编译报错,完全符合你的需求
  • 指向的内容可修改(只要指向的变量本身无const限制):执行*p2 = 100;是合法操作,对应修改变量a的值
  • 注意:这类指针必须在声明时就完成初始化,否则也会触发编译错误

和你已知的const int*的核心区别

  • const int* p(也可写作int const * p):const修饰指针指向的内容,指向可改(p = &b合法),指向的内容不可改(*p = 100报错)
  • int* const p:const修饰指针本身,指向不可改(p = &b报错),指向的内容可改(*p = 100合法)
  • 如果需要指向和指向的内容都不可改,可以写作const int* const p

代码验证示例

int a = 10;
int b = 20;

// 固定指向的指针必须在声明时就初始化
int* const p2 = &a;

*p2 = 30; // 合法,a的值会被修改为30
p2 = &b; // 编译报错:assignment of read-only variable 'p2'

内容的提问来源于stack exchange,提问作者Sandeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:18:04