首页 > 试题广场 >

下面叙述错误的是() char acX[]

[单选题]

下面叙述错误的是()

char acX[]="abc";
char acY[]={'a','b','c'};
char *szX="abc";
char *szY="abc";
  • acX与acY的内容可以修改
  • szX与szY指向同一个地址
  • acX占用的内存空间比acY占用的大
  • szX的内容修改后,szY的内容也会被更改
A acX和acY都是数组,当然可以修改 B 因为"abc"是常量字符串,当它被多次使用时,编译器并不愿意再多分配出额外的内存空间存放多个"abc",而是重复使用这一个"abc",所以,scX和scY指针会指向同一个地址。 C 因为acX是字符串数组,字符串的尾部有一个结束符'\0',所以acX有四个元素,内存空间比acY大 D 字符指针指向的是常量字符串,常量字符串不能修改
发表于 2017-10-19 16:26:59 回复(10)
更多回答
推荐
答案是D
         acX , acY 是2个数组,属于变量,一般存在栈区,可以修改, szX , szY 是2个指针指向常量区,常量区的东西不能被修改,所以D是错误的
编辑于 2017-03-19 10:51:40 回复(2)
c++有一种 copy on write(写时复制)机制,szX 和szY所指内容是一样的,没必要分配两个空间,浪费空间,但是当我们要修改其中一个时,系统才为我们复制一份,此时一个指针会指向新拷贝的那一份,这样对一个的修改就不会影响到另一个实体,也算是c++的一种优化机制吧
发表于 2018-05-09 09:58:13 回复(0)

图片说明

发表于 2017-07-05 11:46:40 回复(2)
答案是错的。应该选C。
C:acX比acY多一个'\0',所以内存空间自然acX比acY大。
D:szX和szY都是指向常量存储区的字符串“abc”,是不可以改变的。所以D错。
发表于 2017-01-14 08:39:49 回复(6)
常量字符串不能被修改
发表于 2018-07-16 17:51:32 回复(0)
char *szx,char *szy 不可以直接指向 const char* 类型 , 要加const。
题目有问题
发表于 2022-08-02 13:35:14 回复(0)
没错没仔细看szx和szy是指向一个地方的,因为是常量字符串,所以他们存同一个地址,常量不改变,那么szx改变和szy半毛钱关系都没有。。。。脑子抽风了。。。。
发表于 2021-10-16 11:28:31 回复(0)
插个眼,a所说的内容指的是自己地址,而不是指向常量区的字符串~
发表于 2021-04-03 17:54:43 回复(0)
D项是指针重定向了
发表于 2020-10-04 17:46:10 回复(0)
acX , acY 是2个数组,属于变量,一般存在栈区,可以修改, szX , szY 是2个指针指向常量区,常量区的东西不能被修改,所以D是错误的
发表于 2019-07-01 15:49:38 回复(0)
关于D选项:szX和szY所指向的内容是在常量区,是不能被修改的,貌似是因为这个原因才错误的
但是szX和szY是 char* 类型的指针变量,修改szX的内容(不是修改szX所指向的内容),是不会影响szY的内容的
比如:
    char  *szX="abc";
    char  *szY="abc";
    szX="def";
此时szX的内容发生了变化(当然所指向的内容也变了),但是szY的内容没有变化
    

发表于 2017-02-13 17:33:46 回复(0)
选项d不能修改,常量区
发表于 2020-08-17 16:16:38 回复(0)

哦,常量,疏忽了

发表于 2020-02-28 19:56:57 回复(0)
c++强制输出字符串地址: cout << "字符串起始地址值: " << static_cast<const void="">(pszStr) << endl;</const>
发表于 2019-08-06 23:55:12 回复(0)
D:常量区常量不能修改
发表于 2018-08-22 20:48:30 回复(0)
个人认为是BD
发表于 2018-04-15 23:26:08 回复(0)
百度:进程地址空间
发表于 2017-11-04 21:34:05 回复(0)
我选择的是C,你们怎么看?到底正确答案是什么呢?
发表于 2017-09-21 15:34:05 回复(1)
常量区的东西不能被修改
发表于 2017-07-24 13:20:27 回复(0)
为什么b是对的呢?不是指向同一个字符常量吗?地址应该相同啊?
发表于 2017-07-01 11:25:13 回复(1)