首页 > 试题广场 >

对下列语句正确的描述是?

[单选题]
对下列语句正确的描述是?
const int *x;   //①
int * const x;   //②

  • 语句①的含义是指针变量x不能更改
  • 语句②的含义是指针变量x所指向的值不能更改
  • 语句②的含义是指针变量x不能更改
  • 语句①和②相同含义的不同定义方式
推荐
C
const修饰离它最近的对象,
1)语句,const修饰的是const,指针变量x指向整型常数,x的值可以改变,但不能试图改变指向的整型常数;
2)语句,const修饰的是x,指针变量x的值不能改变。
编辑于 2015-02-03 16:07:15 回复(1)
口诀:左数又指 当const出现在*号左边时,指针指向的数据为常量 当const出现在*号右边时,指针本身为常量
发表于 2016-03-02 17:04:06 回复(0)
易记,从右往左读
const int *x;   // x is a pointer to int const
int * const x;  // x is a const pointer to int
编辑于 2018-06-26 20:39:47 回复(1)
const int *x同int const *x是同样的意思,按照从由向左的阅读,就是指向const对象的int型指针,所指对象不能改变,指针可以改变
int *const x表示指向int型对象的const指针,指针不能该改变,所指的对象可以改变
还有一种变形:
string s;
typedef string *pstring;
const pstring cstr1=&s;
pstring const cstr2=&s;
string *const cstr3=&s;
此时的cstr1很多人认为是const string *类型的指针,但是这是错误的。原因是声明const pstring的时候,const修饰的是pstring的类型,这是一个指针。因此,该声明语句是把cstr1定义为指向string型对象的const指针,这个定义等价于string *const,所以上面的三种写法的意思都是一样的,但是使用typedef的时候具有迷惑性。
发表于 2016-08-11 00:03:32 回复(0)

记住左数右指。const出现*左边 数据不能变,右边的话指针值不能变

发表于 2019-08-20 18:33:31 回复(0)
AC互斥,单选,所以B错,所以C对
发表于 2017-02-09 15:36:07 回复(1)
  1. const int *a 等同于 int const *a,此处 const 修饰的是 *a 这一整体,因此可修改指针 a 所指向的内存地址,但不能更改 a 所指向的内存地址的值(即 *a);
  2. int * const a,此处 const 修饰的是 a,则不可以改变指针 a 所指向的内存地址,但可以改变 a 所指向的内存地址的值(即 *a)。
发表于 2020-06-30 02:45:29 回复(0)

const修饰指针

//修饰指针指向的值,指针指向的值不能改变
const int* p;
int const* p;
int* p const;
//修饰指针,不能改变指针,如++p不能
int* const p;

发表于 2019-02-14 12:13:29 回复(0)
B
C
const int* x ; 指针x指向的为常量,值不能被更改.
int* const x; 指针为常量.
发表于 2015-03-26 19:09:56 回复(0)
当const出现在*号右边时,指针本身为常量;
当const出现在*号左边时,指针指向的数据为常量;
发表于 2020-08-22 10:53:27 回复(0)
1⃣️常量指针:指向的值是个常量,所以指针指向的值不可修改,指针的指向可以修改。 2⃣️指针常量:指针是个常量,所以指针的指向不可以修改,指针指向的值可以修改。
发表于 2023-04-12 15:19:22 回复(0)
const 左数右指。
发表于 2022-08-06 23:49:03 回复(0)
int * const x——指针常量,重点在指针表明这个指针是个常量,即指针指向是个常量,指向初始化后指向不能更改,指向的值可以改。 const int * x——常量指针,重点在常量,表明指针指向的对象是个常量,指向的值不能更改,指向可以更改。 巧记:const表示常量,*表示指针,按照书写顺序,巧记const int*常量指针和int*const指针常量。
发表于 2022-05-27 21:47:16 回复(0)
const在*左定值,在右定向
发表于 2022-03-07 15:47:59 回复(0)
<p>const int *x; &nbsp; // x is a pointer to int const </p><p>int * const x;&nbsp; // x is a const pointer to int</p>
发表于 2020-10-30 12:04:49 回复(0)
口诀:左数又指 当const出现在*号左边时,指针指向的数据为常量 当const出现在*号右边时,指针本身为常量
发表于 2020-07-31 08:39:25 回复(0)
const修饰离他最近的对象。
编辑于 2018-10-28 17:25:39 回复(0)