关于const的问题 const int *a; int const *a; int *const a; 的区别

如题所述

  1、如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。
  2、因此,const int *a;和 int const *a;的情况相同,都是指针所指向的内容为常量(const放在变量声明符的位置无关),这种情况下不允许对内容进行更改操作,如不能*a = 3 ; ,int *const a;为指针本身是常量,而指针所指向的内容不是常量,这种情况下不能对指针本身进行更改操作,如a++是错误的。
  3、const int* const a;为指针本身和指向的内容均为常量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-19
前两个一样,意思是指针指向的对象是const(指针本身的值可变,不是const),第三个是指针本身不可变const,(但他指向的对象可变,不是const)本回答被提问者采纳
第2个回答  2012-06-19
const int *a; 表示指针a指向的整数为只读变量,不能改变,但可以改变指针a的值来改变a指向的内容。
int const *a;同上,一个意义。
int *const a;表示指针a为只读变量,不能改变,既不能改变a指向的地址,但可以改变a的内容。

const定义要从右至左看,const int *a,既const (int *a),const修饰的是指针a指向的内容,int *const a;const修饰的是a,即指针。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网