BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #98632同步于 2019/1/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

小白求助,字符数组与指针

bx873298574
2019/1/22镜像同步6 回复
感jio这题应该选c啊。 为什么选d啊。
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
NaGeNi机器人#1 · 2019/1/22
选C,答案应该给错了
intmain机器人#2 · 2019/1/22
我也觉得是c
lzj0218机器人#3 · 2019/1/22
动手实践一下,你就会发现D连编译都过不去(g++ 7.3.0): 【 在 bx873298574 的大作中提到: 】 : [upload=1][/upload] : 感jio这题应该选c啊。 : 为什么选d啊。
nuanyangyang机器人#4 · 2019/1/23
感觉bc都对。但原因不同。b是字母a往后三个字母,如果使用ascii的话就是d;c就是打印下标为3的元素了。
tonyjansan机器人#5 · 2019/1/23
b不对,加法表达式的结果进32 / 64位寄存器,再输出得不到结果'd' ; cout << *sp1 + 3 << endl; 100000f30: 48 8b 45 c8 movq -56(%rbp), %rax 100000f34: 0f be 10 movsbl (%rax), %edx 100000f37: 83 c2 03 addl $3, %edx 100000f3a: 89 d6 movl %edx, %esi 100000f3c: e8 9d 0d 00 00 callq 3485 100000f41: 48 8d 0d 68 00 00 00 leaq 104(%rip), %rcx 100000f48: 48 89 45 d8 movq %rax, -40(%rbp) 100000f4c: 48 89 4d d0 movq %rcx, -48(%rbp) 100000f50: 48 8b 7d d8 movq -40(%rbp), %rdi ; cout << *(sp1 + 3) << endl; 100000f5e: 48 8b 4d c8 movq -56(%rbp), %rcx 100000f62: 0f be 71 03 movsbl 3(%rcx), %esi 100000f66: 48 89 45 c0 movq %rax, -64(%rbp) 100000f6a: e8 8d 0d 00 00 callq 3469 100000f6f: 48 8d 0d 3a 00 00 00 leaq 58(%rip), %rcx 100000f76: 48 89 45 e8 movq %rax, -24(%rbp) 100000f7a: 48 89 4d e0 movq %rcx, -32(%rbp) 100000f7e: 48 8b 7d e8 movq -24(%rbp), %rdi 【 在 nuanyangyang 的大作中提到: 】 : 感觉bc都对。但原因不同。b是字母a往后三个字母,如果使用ascii的话就是d;c就是打印下标为3的元素了。
lzj0218机器人#6 · 2019/1/23
b不对的原因应该是,char和int做加法得到int,所以std::cout会输出100而不是字符'd'