社区
C++ 语言
帖子详情
const int a与int const a有任何区别么?
Horsetail
2007-01-16 05:48:14
在http://dev.csdn.net/author/chaozhiping/55dea5618c3640739ce8979195b5528c.html
中我看到了const int a与int const a这两种用法。我现在想问下。这两种用法是一点区别也没有么??如果有的话,是什么?可以给我说说不?
...全文
3576
19
打赏
收藏
const int a与int const a有任何区别么?
在http://dev.csdn.net/author/chaozhiping/55dea5618c3640739ce8979195b5528c.html 中我看到了const int a与int const a这两种用法。我现在想问下。这两种用法是一点区别也没有么??如果有的话,是什么?可以给我说说不?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
请叫我美文
2011-07-19
打赏
举报
回复
哈哈,一样的~~~
maosher
2009-02-05
打赏
举报
回复
没区别
normallife
2009-02-05
打赏
举报
回复
haha
herman~~
2009-02-05
打赏
举报
回复
功能上没啥区别,,呵呵
ksharp1982
2009-02-05
打赏
举报
回复
这样定义指针的时候才有区别,lz这样的定义功能是完全一样的,没啥区别
影子LEON
2009-02-05
打赏
举报
回复
没区别的,
当修饰一指针的时候才有区别
deerwin1986
2009-02-04
打赏
举报
回复
没区别...
zhaohongbo83
2009-02-04
打赏
举报
回复
呵呵
redleaves
2007-01-17
打赏
举报
回复
const int a是旧的习惯写法
int const a是统一风格的写法
功能是完全一样的,但int const a要好理解一些,而且风格上统一一点.
C++中,const修饰紧跟其后的内容.所以,在int const a中,const修饰的是a,也就是说a是const;
相似的,char const *a中,const就修饰的*a,也就是说*a是不可变的,但a可以.
而如果是char * const a,那就是a不可变,*a可变.一目了然.
如果用旧写法,复杂类型理解起来就有点费力.
比如const char *(*aaa)[10]
一眼上去,恐怕没几个人说得出来const是修饰什么.
用新写法就很清楚了-- char const*(*aaa)[10], const是修饰*(*aaa)
Xscarlet
2007-01-17
打赏
举报
回复
没有区别
但是如果是指针的话就有区别了
redleaves
2007-01-17
打赏
举报
回复
呵呵,写漏了...多谢更正.^_^
blue_zyb
2007-01-17
打赏
举报
回复
比如const char *(*aaa)[10]
一眼上去,恐怕没几个人说得出来const是修饰什么.
用新写法就很清楚了-- char const*(*aaa)[10], const是修饰*(*aaa)
--------------------------------------------------
。。。const 修饰的是*(*aaa)吗,应该是*(*aaa)[i]吧
其实const修饰的就是char,我觉得const char也蛮好理解的,可能习惯了吧,呵呵
OOPhaisky
2007-01-16
打赏
举报
回复
const int a与int const a没有区别,完全等价的,至于采用哪种写法,完全根据个人习惯。
急躁码农
2007-01-16
打赏
举报
回复
符号常量.两种格式无多大区别.
但当const修饰的是指针时就有区别.
const int* a
int* const a ;
如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量
Horsetail
2007-01-16
打赏
举报
回复
谢谢各位哈!
Horsetail
2007-01-16
打赏
举报
回复
谢谢各位哈!
lann64
2007-01-16
打赏
举报
回复
一定要找到区别,那就是一个const在int前面,一个const在int后面。功能上完全一样。
caocheng8230
2007-01-16
打赏
举报
回复
没有区别,你可以看看我以前写的一个BLOG,有const用法说明:
http://blog.csdn.net/caocheng8230/archive/2006/12/27/1464574.aspx
lann64
2007-01-16
打赏
举报
回复
没区别
const
int
* a、
int
*
const
a、
const
int
*
const
a的
区别
const
int
* a 首先 a 是一个整形指针,而
const
修饰的是
int
*,表示 a 所指向的地址的内容不能被改变,但是 a 本身还可以指向别的地址。 如图:a 指向 m 的地址,14行企图用 *a 来改变 m 的值就报错了。而15行让 a 再指向 n 的地址则正常。 补充:
const
int
* a 与
int
const
* a效果相同。
int
*
const
a 同样 a 也是一个指向整形变量的指针,但与
const
int
* a 不同,
const
修饰的是 a 本身,那么效果也就可想而
const
int
* a 与
int
*
const
a 的定义与
区别
一:
const
int
a;
int
const
a ;这两个的作用是一样的,a都被定义成一个常整型数,一旦被定义后,就不能再其他地方重新赋值。二:
const
int
* a;1:
const
修饰的是整型数
int
,而不是指针,即a是一个指向常整型数的指针。近一步的理解为:整型数 *a是不可以被重新赋值的,而指针却是可以修改的,可以重新指向另外一个内存地址;2:eg:
int
a1=30;
int
...
【C】
const
int
*a 与
int
*
const
a,
int
const
* a
1.
const
int
*a
const
修饰的是
int
,而
int
是一个整型 *a所指向的对象的值不能改变,但是指针的指向可以变,使其指向不同的对象
const
int
*a = 0;
const
int
b = 1;
int
c = 1; a = &b; //ok,将b的地址给a,改变a指针的指向 a = &c; //ok *a = 2; //err,不能改变a指针指向对象的值 2.
int
*
const
a 这里
const
是修饰a,a表示
const
int
a;
int
const
a;
const
int
*a;
int
*
const
a;
const
int
*
const
a;
对指针来说,可以指定指针本身为
const
,也可以指定指针所指的数据为
const
,或二者同时指定为
const
。 1)
const
int
a;
int
const
a; 这两个写法是等同的,表示a是一个
int
常量。 2)
const
int
*a;
int
const
* a; 表示a是一个指针,可以任意指向
int
常量或者
int
变量,它总是把它所指向的目标当作一个
int
常量。 3)
int
*
[C/C++]
const
int
* 与
int
const
* 的
区别
本文参考知乎@王国潇写的回答总结而成,详文见:C++里
const
int
* 与
int
const
* 有什么
区别
?。 先确定一个规则:
const
默认与左边结合,左边没有东西则与右边结合。在这个规则下进行分析。 1.
const
int
* a
const
与
int
结合,因此变量a是一个指向常量整型的指针。 2.
int
const
* a
const
与
int
结合,因此变量a与1同。 3.
int
*
const
a
const
与*结合,因此变量a是一个指向整型的常量指针。 4.
const
int
* .
C++ 语言
64,282
社区成员
250,470
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章