C++ 指针如何在函数参数中传递?用示例程序?
我想知道函数参数中指针的流程。请帮助我如何逐行执行下面的操作及其流程C++ 指针如何在函数参数中传递?用示例程序?,c++,c,C++,C,我想知道函数参数中指针的流程。请帮助我如何逐行执行下面的操作及其流程 #include <stdio.h> int main() { int i = 97, *p = &i; foo(&i); printf("%d ", *p); } void foo(int *p) { int j = 2; p = &j; printf("%d ", *
#include <stdio.h>
int main() {
int i = 97, *p = &i;
foo(&i); printf("%d ", *p);
}
void foo(int *p) {
int j = 2;
p = &j;
printf("%d ", *p);
}
首先,在调用foo之前,应该让编译器看到foo的声明
#include <stdio.h>
void foo(int *p); // <<<<<<<<<< Declare your function first!
int main() {
int i = 97, *p = &i;
foo(&i); printf("%d ", *p);
}
void foo(int *p) {
int j = 2;
p = &j;
printf("%d ", *p);
}
程序无法编译。@为什么?我在这里没有看到任何语法错误,调试器是查看它逐行执行和流的完美工具。你编译了吗?…可能会收到警告。。。最好去做一个教程指针函数参数不流动。嗯,这是真的,但没有答案。@Quentin试图改进…@Quentin THX,谢谢你的编辑…我希望结果不是粗鲁的。我有点不安短路同行验证和编辑别人的帖子直接。。。或者我还能建议编辑吗?@Quentin我希望这不会显得太粗鲁。不,不,不!至少在这种情况下,这是绝对可以和赞赏。否则的话,我会退回去的。不客气。。。
void foo(int *p) {
*p = 2;
printf("%d ", *p);
}