A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 克莱斯勒 中级黑马   /  2015-9-8 21:31  /  1016 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

19. 定义char *oldstr = "fengjie"; char newstr[20] = "aibanzhang";//
    如果oldStr[0]=’w’和newStr[0]=’q’的结果分别是?D
A、对  对                                                B.错 错
C、对  错                                       D.错 对

6 个回复

倒序浏览
这一题的答案选D?
回复 使用道具 举报
我是来混脸熟的  
回复 使用道具 举报
char* = “”这种情况是申请一段内存作为常量来放到内存中并让指针指向他,所以当对常量的内容进行更改时,程序会长生错误,而char[]这种数组形式就可以很方便的更改每一个元素的内容了,所以为错,对
回复 使用道具 举报
char *oldstr = "fengjie";
这是声明了一个字符串常量,常量的值是不可以改变的,但是地址的指向是可以变的,所以错了。
char newstr[20] = "aibanzhang"
这就是一个数组,唯一能迷惑人的地方就是它是一个可以保存字符串的数组,本质就是数组,修改数组的元素值想怎么修改就怎么修改。
回复 使用道具 举报
第一个是错的 第二个才对
回复 使用道具 举报
楼上的说的非常对,
char *oldstr = "fengjie";
oldstr其实是一个字符串的指针,它指向一段内容为fengjie的内存空间。
因此,oldstr[0]这样的格式是不对的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马