cont 指向类型问题

yilin54 2009-04-14 10:29:02
int main()
{
int a=2;
int const *p=&a;

p=&a;

printf("%d",*p);

return 0;

}

这里P是个指向常整数的指针。但是我给他赋的a是一般的整数。也没有提示错误。是不是说这种情况就是允许这样的。
...全文
105 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yilin54 2009-04-14
  • 打赏
  • 举报
回复
说的好。。。

[Quote=引用 3 楼 brookmill 的回复:]
int const *p 指向哪里都可以,只要不通过*p修改指向的内容,编译器就没有意见
int const *p=&a; 即使以后修改了a,编译器也不管
[/Quote]
liliangbao 2009-04-14
  • 打赏
  • 举报
回复
允许
int const *p 指的是p指针指向的内容不可改变——是指不可以通过指针p来改变内容~
如 *p++;
但是具体的是变量还是常量无所谓了~
brookmill 2009-04-14
  • 打赏
  • 举报
回复
int const *p 指向哪里都可以,只要不通过*p修改指向的内容,编译器就没有意见
int const *p=&a; 即使以后修改了a,编译器也不管
goodname 2009-04-14
  • 打赏
  • 举报
回复
int const *p;或者 const int *p;
表示p是一个指针,该指针指向一个常量不可改,所以 *p = 1; 编译不过去。

int * const p = &a;
表示p指针是常量,一旦初始化后不能再 p = &b;
qindq 2009-04-14
  • 打赏
  • 举报
回复
允许
int const *p
指的是p指针下的内容不可改变
而指针本身可以改变。

70,020

社区成员

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

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