蒋思念 发表于 2021-4-19 14:55:24

S1E24测试题第5题

S1E24测试题第5题的答案解释不是很合适,按照3*3的情况的话, *p = 1 *p=4*p= 7,实际用VS code测试发现结果是 *p = 1 *p=2*p= 3,因此结果为9更偏向于是地址递增的原因,新人求助

人造人 发表于 2021-4-19 15:13:41

是vscode的问题,这是gdb的输出
另外,提问题最好再把源代码也复制上来
我在选择是去找 “S1E24测试题第5题” 和 手敲一遍之间选择了手敲一遍,^_^





Thread 1 "main" hit Breakpoint 1, main () at main.c:4
4         int array = {1, 2, 3, 4, 5, 6, 7, 8, 9};
(gdb) n
5         int (*p) = (int (*))&array;
(gdb) n
6         printf("%d\n", p);
(gdb) print p
$1 = {1, 2, 3}
(gdb) print p
$2 = {4, 5, 6}
(gdb) print p
$3 = {7, 8, 9}
(gdb) print *p
$4 = 1
(gdb) print *p
$5 = 4
(gdb) print *p
$6 = 7
(gdb)

蒋思念 发表于 2021-4-19 15:48:02

人造人 发表于 2021-4-19 15:13
是vscode的问题,这是gdb的输出
另外,提问题最好再把源代码也复制上来
我在选择是去找 “S1E24测试题第5 ...

那就是编译器的问题了

蒋思念 发表于 2021-4-19 15:53:41

人造人 发表于 2021-4-19 15:13
是vscode的问题,这是gdb的输出
另外,提问题最好再把源代码也复制上来
我在选择是去找 “S1E24测试题第5 ...

另外这个是怎么敲出来的,想学

人造人 发表于 2021-4-19 17:26:40

蒋思念 发表于 2021-4-19 15:48
那就是编译器的问题了

对,是vscode的问题
这个是在命令行界面,就是cmd窗口
用的是gdb调试器
在cmd窗口中输入 gdb 可执行文件的名字
例如 gdb main
可以看看这个
https://blog.csdn.net/niyaozuozuihao/article/details/91802994
页: [1]
查看完整版本: S1E24测试题第5题