关于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,即指针。本回答被网友采纳

关于const的问题 const int *a; int const *a; int *const a; 的...
1、如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。2、因此,const int *a;和 int const *a;的情况相同,都是指针所指向的内容为常量(const放在变量声明符的位置无关),这种情况下不允许对内容...

...a; const int *a; int * const a; int const * a const; 之间的区别...
int const a;这两个写法是等同的,表示a是一个int常量。const int a;表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个int常量。也可以写成int const a;含义相同。int const a;表示a是一个指针常量,初始化的时候必须固定指向一个int变量,之后就不能再指向别的...

C语言定义变量如:int const a;与const int a;有什么区别?
int const a;与const int a;没有区别。int const *a 和const int *a 没有区别,都是一个指向一个int常量的指针,这个指针本身以后可以重赋值指向别的int常量。而 int *const a; 表示a是一个指针常量,初始化的时候必须固定指向一个int变量,之后就不能再指向别的地方了。include <stdio.h> i...

const int function(const int a, int b)const;怎么解释?举例说明_百度...
首先得知道CONST是啥意思,意思是常量,用它定义的XX都不可修改。比如const int a;---常整型数a的值不可修改。const int *a;---一个指向常整型数的普通指针,指针指向可以修改,但是指向的数不可以修改。int *const a---一个指向整型数的常指针,指针指向不能修改,但是指向的数可以修改。---...

int const&和 const int&有什么区别
const int a; int const a; const int *a; int * const a; int const * const a ; 之间的区别? const int a; int const a; 这两个写法是等同的,表示a是一个int常量。 const int *a; 表示a是一个指针,可以任意指向int常量或者int变量 ...

C++中,int *& 与 int &* 的区别、意义及使用
const int *a; \/\/ const 限定 int,即 a 是一个 变量,类型为 指向int常量的指针。(a是可以修改的,*a 是不可修改的)int const *a; \/\/ const 限定 *,即 a 是一个变量,类型为 指向int的常指针。(常指针的概念是,不能通过指针修改指向变量的值。)int * const a; \/\/ const 限定...

C++ 中:const int * a 和 const int * & a的区别。
const int *a 是指向const int 变量的指针,const int *& a 是指向const int 变量的指针的引用,在座函数形参时,区别是很大的,函数的参数进行的是值拷贝,即使传的是指针,也的对指针(即指针里存的地址)的拷贝,因此,如果在函数内部改变了参数自身的地址,比如使参数等于NULL,此时是不会影响函数外...

c语言里const int 和int 有什么区别,const的作用是什么。
一、const int 和int 的区别 1、返回值 const int & 是返回这个数值的一个常量的引用。而int 是返回这个数值的一个拷贝。int 是进行拷贝构造,而const int & 是返回的引用。拷贝构造更消耗时间,与此同时还用析构函数。因为产生了一个拷贝,你就可以轻易地修改拷贝的内容。2、取指针 const int...

const和int的区别是什么?
一、区别如下:1、int定义的量是变量,它的值可以更改;而const int 定义的是一个常量,它的值不可以更改。2、int在定义的时候,不需要初始化,而const int 在定义的时候必须初始化;二、const的作用:把对象转换成一个常量

const int a(){ } 和int a()const { } 有区别么 有什么区别 分别代表...
int a()const { } 表示a()函数中,类的成员变量不能发生任何改变 const int a(){ } 这属于一种牵强的写法吧,意思是返回值是一个整型 , 而且这个返回值是常量,有必要这样写吗?(个人理解)

相似回答