【发布时间】:2010-09-28 16:49:46
【问题描述】:
我正在尝试学习 C 指针,但我无法理解某些内容... 以下代码:
#include <stdio.h>
void foo(int *x, int *y);
void foo(int *x, int *y) {
printf("x = %p\ny = %p\n", &x, &y);
*x = 5;
*y = 6;
}
int main(void) {
int a, b;
printf("a = %p\nb = %p\n", &a, &b);
foo(&a, &b);
return 0;
}
为什么地址不同?第一个printf(main)输出两个地址。另一个printf (foo) 输出不同的地址。我将地址传递给 foo(& 运算符)。
【问题讨论】:
标签: c pointers memory-address