const区别的问题,有点糊涂,请高手赐教

two_55_eight 2008-02-28 10:03:03
1、int const a 与 const int a的区别
2、int const *p 与 const int *p的区别
...全文
153 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
PomLover 2008-02-28
  • 打赏
  • 举报
回复
第一个没有区别
第二个也没有区别,只有把const放在*号前后才有区别,题目中表示的是指针指向的是常量int
kaicaitaiyang 2008-02-28
  • 打赏
  • 举报
回复
C++ primer 上const的那章有讲,挺详细的。
eagle_225 2008-02-28
  • 打赏
  • 举报
回复
看看effective C++吧
21条说明:一般来说,你可以在头脑里画一条垂直线穿过指针声明中的星号(*)位置,如果const出现在线的左边,指针指向的数向的数据据为常量;如果const出现在线的右边,指针本身为常量;如果const在线的两边都出现,二者都是常量。
zzushop 2008-02-28
  • 打赏
  • 举报
回复
第一组没有什么区别,都表示整形常量。
第二组:也是一样的 int const *p 指针指向的内容是只读的,即指向常量的指针
Mnky 2008-02-28
  • 打赏
  • 举报
回复
完全没区别。const放在类型前后都一样,放在*前后才有区别
shaoze5 2008-02-28
  • 打赏
  • 举报
回复
1.两者没有区别,只是写法不同。
2. int const *p 指针为const,即不能指向别的对象
const int *p 指针所指的对象为const,即指向的对象不可修改
shaoze5 2008-02-28
  • 打赏
  • 举报
回复
1.两者没有区别,只是写法不同。
2. int const *p 指针为const,即不能指向别的对象
const int *p 指针所指的对象为const,即指向的对象不可修改
ltc_mouse 2008-02-28
  • 打赏
  • 举报
回复
没有区别。
1. 都表示整型常量
2. 都表示指向整型常量的指针;2与int *const p有区别
michney 2008-02-28
  • 打赏
  • 举报
回复
两组都没有区别
第一组,int 常量
第二组,指向常量的指针(指针可变,指向的数据不变)
星羽 2008-02-28
  • 打赏
  • 举报
回复

让c++告诉你


#include "iostream"
using namespace std;

int main()
{
const int n1 = 0;
int const n2 = 0;

const int* p1 = 0;
int const* p2 = 0;

cout<<typeid(n1).name()<<endl;
cout<<typeid(n2).name()<<endl;

cout<<typeid(p1).name()<<endl;
cout<<typeid(p1).name()<<endl;

return 0;
}

---------

结果

int
int
int const *
int const *
请按任意键继续. . .










VxD1 2008-02-28
  • 打赏
  • 举报
回复
1、int const a 与 const int a的区别
2、int const *p 与 const int *p的区别
没区别,你写成如下就有区别了
2、int const *p 与 int * const p

69,368

社区成员

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

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