首页 > 试题广场 >

下面指针所指向的内存,哪一块是可以修改的()

[单选题]
下面指针所指向的内存,可以修改的是()
  • const int* a
  • int const* b
  • int* const c
  • const int* const d
const默认修饰左边的内容,如果左边没有东西则修饰其右边的内容
const int *a   const左边没有东西,因此const修饰int,则指针指向的内容不可通过指针修改
int const *a   const左边有东西,因此const修饰int
int* const a   const修饰*,即指针不能改变指向
const int * const a  第一个const修饰int,第二个const修饰*,即指针指向内容不可修改,也不能改变指针指向 
总结:*在const左边,不能改变指针指向,*在const右边,不能修改所指的值

编辑于 2021-07-09 14:05:49 回复(11)

当const在*的左边,不能改变指针的对象的值 = 指针所指向的内存,也就是说不能修改我们要找的人,

当const在*的右边,不能改变指针的地址,也就是说不能修改我们要找的地址。

发表于 2020-08-03 20:11:59 回复(4)
星号为界限,左定值右定向
发表于 2021-12-06 17:16:27 回复(0)
原来内存指的是内容(值)啊 **!
编辑于 2022-11-28 17:08:37 回复(0)

<p>题目是问哪个可以通过指针来修改值。。。只需要区分const在*前还是*后。。。。第一种方法 投机取巧 面试的时候实在不懂就冷静分析选项 首先排除d选项d肯定是只读形式的数据 。。。。ab选项的const都在*前 所以选c。。。。。。第二种。靠实力取胜。 1.const 在*前的情况:int a;const int *p = &a;。。。或者int const*p =&a。。。。。。这说明 只是不能通过指针p 来修改a的值 所以*p =10是错误的。</p><p>但是指针p可以指向其他变量 如int b;*p=&amp;b这是对的。。。也可以a =10。。。。。。。2、const在*后面 int *const p =&a。。。。。这说明 指针p指向a的事实不能变。我就是指向a我不可以指向别人,所以 a=10是正确的、*p =10也正确。 但是p=&b这样就改变了指针p指向a的事实所以这种是错误的。。。。

编辑于 2020-09-03 12:06:21 回复(0)
小技巧:const从左往右先碰到*则表示指向的变量所指地址的值不可以改变(即变量的值0)
const先碰到变量说明指针的指向不能变,但是指针指向的值可以改变
发表于 2021-08-26 09:24:37 回复(0)
当const在*的左边时,不可以改变指针的指向;
当const在*的右边时,不可以改变指针所指向的内存中的值
发表于 2022-03-26 09:34:16 回复(0)
其实严谨的说法是"可以通过该指针修改",而不是"可以修改"
发表于 2023-03-03 17:05:57 回复(0)
星号为界,左定值右定界
发表于 2022-11-22 23:36:22 回复(0)
const往后走,遇*址可变,遇变量值可变
发表于 2022-10-03 18:38:30 回复(0)
const默认修饰左边的内容,如果左边没有东西则修饰其右边的内容 const int *a   const左边没有东西,因此const修饰int,则指针指向的内容不可通过指针修改 int const *a   const左边有东西,因此const修饰int int* const a   const修饰*,即指针不能改变指向 const int * const a  第一个const修饰int,第二个const修饰*,即指针指向内容不可修改,也不能改变指针指向  总结:*在const左边,不能改变指针指向,*在const右边,不能修改所指的值
发表于 2021-11-09 10:09:00 回复(0)
指针所指向的内存相当于该地址指向的值,重点在值,题目的意思是可以修改值的是
发表于 2020-08-17 21:49:06 回复(0)
这是题目的提问有问题还是我理解有问题
发表于 2023-11-07 16:33:29 回复(0)
左定值不定向,右定向不定值。
发表于 2023-08-23 16:57:56 回复(0)
如果问的是可以改变值,那么C是对的
发表于 2023-08-04 13:37:31 回复(0)
*左定地址,右边定量
发表于 2022-11-07 18:35:00 回复(0)
哎 内存的意思就是值啊 总是想到地址
发表于 2022-05-09 19:45:18 回复(0)
*代表指针,const代表常量,从左到右开始读就完了。例如:int * const p,就是指针常量;int const * p,就是常量指针。看看指针和常量这2个词,谁在前,谁就不能变。因此int * const p是指针常量,p不能被重新赋值,p所指的可以;int const * p是常量指针,p可以被重新赋值,p所指的却是常量,不能被重新赋值
发表于 2022-03-20 09:54:47 回复(1)
根据const位置,左定值,右定向
发表于 2022-03-04 23:14:11 回复(0)
const int *a 指针可改,指向内容不可改
int * const a 指针不可改,指向内容可改
int const * a const都不可改
发表于 2021-08-13 14:14:08 回复(0)