黑马程序员技术交流社区
标题:
请问选什么?为什么?
[打印本页]
作者:
飞哥
时间:
2015-7-29 21:36
标题:
请问选什么?为什么?
23.char *ch1 = "heima"; 将*(ch1 +1) = ‘6’;之后结果是多少?(A)
A.h6ima B.运行不出错但有警告 C.运行正常但值没有改 D.运行出错
作者:
wy911011
时间:
2015-7-29 21:43
ch本来指向字符串首地址,ch1+1,表示指针ch指向下一个地址,也就是指向字符串中'e'的地址,*(ch1+1)=6,表示把指向这个地址的值修改成6,
作者:
wy911011
时间:
2015-7-29 21:45
ch1,sorry少打了个1,ch1
作者:
Anne_lov
时间:
2015-7-30 17:04
首先楼上是正确的其次,这里的‘6’是字符型,Ascii码中是54这里以字符的形式输出 那输出就是6 如果以整形输出就是54.
作者:
Eil.tea
时间:
2015-7-30 17:21
楼上的各位兄弟,能执行一下再说吗?执行结果是错误的,*ch1指向的是常量字符串的地址,是无法进行赋值的好么。ch1 +1确实指向了e所在的存储单元,但你这么写就相当于'e'='6',常量如何赋值?
作者:
白方镜世
时间:
2015-7-30 18:09
楼上说的没错,ch1指向的字符串是存在常量区的,ch1只是指向它而已,根本不能修改。
当然,如果是ASCII标准没有建立起来的那段时期是可以更改的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2