一下程序的输出结果是 简单解释为什么 main() {char *s="abcde"; s+=2; print("%s\n",s);}
答案:4 悬赏:20 手机版
解决时间 2021-03-17 16:53
- 提问者网友:缘字诀
- 2021-03-16 23:56
一下程序的输出结果是 简单解释为什么 main() {char *s="abcde"; s+=2; print("%s\n",s);}
最佳答案
- 五星知识达人网友:猎心人
- 2021-03-17 00:08
s="abcde";
指向这个字符串.
当前指向a的位置.
然后 s+=2, 指向c的位置.
以%s输出,会输出
cde
指向这个字符串.
当前指向a的位置.
然后 s+=2, 指向c的位置.
以%s输出,会输出
cde
全部回答
- 1楼网友:孤独的牧羊人
- 2021-03-17 03:51
(1)
指针本来是指向字符串的首地址a的,+2后指向c,故输出:c
(2)
同理,由于是输出字符串,所以直到 '\0'为止,故输出:cde
(字符串都是以'\0'结束的,复制的时候虽然没有'\0',但是系统会自动给加上这个的,这是字符串结束标志)
(3)
同理,指向c,但是要输出整形,故读取c所占字节内容,c的ascii码为99,故即输出:99
(由于前面定义的指针p为字符型的,故即便是整形输出,也只读一个字节的内存)
希望能帮到你!~
- 2楼网友:鱼芗
- 2021-03-17 02:14
输出cde,s+=2表示把s的地址加2,则s的地址变成了c处的地址,输出就从c处地址开始的字符串,故为cde
- 3楼网友:猎心人
- 2021-03-17 01:42
输出:cde
s首先是指向a的
执行s+=2后,s向后移动2*sizeof(char)个字节(这里就是移动两个字母)
所以s此时指向c
所以打印字符串从c开始,直到遇到结束符'\0',打印cde
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯