const int * const a;其中两个CONST有什么不同 稍微详细点儿

kkcncry 2004-10-10 10:14:44
~~~
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chensun08 2004-10-10
  • 打赏
  • 举报
回复
const在*的左边表示指针可以变,但指针指向的内容不可以变。
eg:const int * a;
int const * a;
const在*的右边表示指针不可以变,但指针指向的内容可以变。
eg:const int* const a;

本例则是两者都不可以变。
kkcncry 2004-10-10
  • 打赏
  • 举报
回复
精辟!!楼上两位!
你我他111 2004-10-10
  • 打赏
  • 举报
回复
其实就是怎么读const int *const a;这个语句的问题,不妨
一步一步来:
1: int *a;
a是一个指向int型变量 的指针,没什么限制
2: const int *a;
a是一个指向int型变量 的指针,并且它所指向的变量是不能被改变的
3: int *const a;
a是一个指向int型变量 的指针,并且这个指针本身不能被改变
4: const int *const a;
a是一个指向int型变量 的指针,并且它所指向的变量 和 它本身都不能被改变

区分方法,看const和谁靠得近,它就是限制谁的
第一个const和int 靠得近,所以,它是修饰int 型变量的,表示它不能改变
第二个const和a靠得近,所以,它是修饰a本身的,表示a 不能改变

andycpp 2004-10-10
  • 打赏
  • 举报
回复
a是一个指向指向整型的指针
第一个const表示a指向的内容不能变 例如 *a=7; 就是错误的
第二个const表示a本身不能变 例如 int *p; a=p; 就是错误的

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧