代朋友问一个语法问题,急

justfly 2003-07-07 03:41:33
int const * pint1=&d;
int* const pint2 =&d;

这两个语句分别是什么意思?
有什么区别?
...全文
139 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
justfly 2003-07-07
  • 打赏
  • 举报
回复
谢谢大家了:)
fierygnu 2003-07-07
  • 打赏
  • 举报
回复
int const * pint1:pint1是指针(*);pint1是指向常量的指针(const *);pint1是指向常量整型的指针。即*pint1不能被赋值。这种方式与const int *pint1相同。
int* const pint2:pint2是常量(const);pint2是常量指针(* const);pint2是指向整型的常量指针。即pint2在初始化后不能再被赋值。
njSeeWhy 2003-07-07
  • 打赏
  • 举报
回复
以*号为界,如果const在前面,就表示指针指向的是一个常量,但这并不表示被这个指针指向的变量就一定不能改变了,只是如果通过这个指针来访问它,它就是不能改变的常量;如果const在*号后面,就表示指针本身是一个常量,即它始终指向同一个地址,但这个地址里放的数据不一定要是常量。
pushser 2003-07-07
  • 打赏
  • 举报
回复
int const *pt=&abc; //*pt的内容是一个常量
int* const pt=&abc; //相当于指针所指向的地址被固定了,不可以改了的!不能指向别的地址。
  • 打赏
  • 举报
回复
int const * pint1=&d;//指针指向的内容是常量
int* const pint2 =&d;//指针本身是常量,即不能再指向别的int变量
maxcai 2003-07-07
  • 打赏
  • 举报
回复
支持楼上的大侠
zteliubin 2003-07-07
  • 打赏
  • 举报
回复
常指针和指向常量的指针,有一篇专门介绍的文档:
luohualiushui 2003-07-07
  • 打赏
  • 举报
回复
第一个是指向const int的指针
第二个是指向int的const指针

69,382

社区成员

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

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