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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 飞哥 中级黑马   /  2015-7-29 21:42  /  1038 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

23.char *ch1 = "heima";  将*(ch1 +1) = ‘6’;之后结果是多少?( )
A.h6ima      B.运行不出错但有警告      C.运行正常但值没有改       D.运行出错
选啥?为啥?

11 个回复

倒序浏览
求大神指教
回复 使用道具 举报
选择A   指针数组,*(ch1+1)='6'是插入数组第二位的意思。(不知道是不是??)
回复 使用道具 举报
选D,*ch1 指向的是一个常量区, *ch1+1依然是常量区,怎么可以赋值呢
回复 使用道具 举报
选 B     原值美发生改变
回复 使用道具 举报
本帖最后由   张恒宇 于 2015-7-30 01:17 编辑

为什么编译结果值是空的 。。。。。

79615B25-FC5B-4826-BE80-9B65CEABC2D1.png (73.75 KB, 下载次数: 10)

79615B25-FC5B-4826-BE80-9B65CEABC2D1.png
回复 使用道具 举报
别想太多,就是选A,单纯的修改了字符数组第二个值为6
回复 使用道具 举报
wowthe1st 发表于 2015-7-30 01:05
别想太多,就是选A,单纯的修改了字符数组第二个值为6

运行结果我看看
回复 使用道具 举报
香港 中级黑马 2015-7-30 08:22:47
9#
d    char是单个字符 用单引号 也只表示单个字符 双引号的里面有多个字符的用string
回复 使用道具 举报
爱生活爱程序 来自手机 中级黑马 2015-7-30 09:24:17
10#
d字符串指针变量指向的常量,不能修改
回复 使用道具 举报
*(ch1+1)表示已经跳出了,字符指针的范围。。所以会有一个错误。。。应该是D,如果改成*(&ch+1)那就选择A
回复 使用道具 举报
之前说错了,现在纠正一下。使用字符指针来保存字符串,它保存的是字符串常量地址,常量区是只读的,所以不可以修改字符串中的字符。所以选择D
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马