【发布时间】:2021-04-21 04:42:19
【问题描述】:
我正在学习 C 编程,目前正在学习指针。
#include <stdio.h>
void update(int *a,int *b) {
*a = *a + *b;
//*b = *a - *b;
printf("%d", *a - *b);
}
int main() {
int a = 4, b = 5;
int *pa = &a, *pb = &b;
scanf("%d %d", &a, &b);
update(pa, pb);
return 0;
}
我不知道为什么它会打印 4 而不是 -1。我想在指针 *b 中分配它们的差异。任何提示表示赞赏。
【问题讨论】:
-
你正在学习
c,但你正在写c++。 -
scanf()调用将用您在运行程序时输入到标准输入的任何整数覆盖a和b的值;因此,如果不知道您在运行程序时输入了什么,就不可能说出为什么程序会打印 4 而不是 -1。 -
阅读 C 编译器的文档(例如 GCC,用作
gcc -Wall -Wextra -g)。然后阅读调试器的文档(例如GDB...)并使用调试器;另请阅读Modern C 并查看this C reference -
稍后,查看一些 C 标准文档,例如 n1570 或更好
标签: c pointers subtraction