黑马程序员技术交流社区

标题: 还有第19题 [打印本页]

作者: 克莱斯勒    时间: 2015-9-8 21:31
标题: 还有第19题
19. 定义char *oldstr = "fengjie"; char newstr[20] = "aibanzhang";//
    如果oldStr[0]=’w’和newStr[0]=’q’的结果分别是?D
A、对  对                                                B.错 错
C、对  错                                       D.错 对

作者: kylmetz    时间: 2015-9-8 21:35
这一题的答案选D?
作者: 15706025762    时间: 2015-9-8 21:37
我是来混脸熟的  
作者: lionheartism    时间: 2015-9-8 22:14
char* = “”这种情况是申请一段内存作为常量来放到内存中并让指针指向他,所以当对常量的内容进行更改时,程序会长生错误,而char[]这种数组形式就可以很方便的更改每一个元素的内容了,所以为错,对
作者: 408205555    时间: 2015-9-9 11:28
char *oldstr = "fengjie";
这是声明了一个字符串常量,常量的值是不可以改变的,但是地址的指向是可以变的,所以错了。
char newstr[20] = "aibanzhang"
这就是一个数组,唯一能迷惑人的地方就是它是一个可以保存字符串的数组,本质就是数组,修改数组的元素值想怎么修改就怎么修改。
作者: lumangmang    时间: 2015-9-9 11:56
第一个是错的 第二个才对
作者: lixj1991    时间: 2015-9-9 14:37
楼上的说的非常对,
char *oldstr = "fengjie";
oldstr其实是一个字符串的指针,它指向一段内容为fengjie的内存空间。
因此,oldstr[0]这样的格式是不对的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2