【发布时间】:2016-12-04 12:47:13
【问题描述】:
#include<stdio.h>
int func(int*);
int main(void)
{
int a = 3;
int *p = NULL;
p = &a;
printf("p = %p\n", p);
func(p);
printf("p inc: %p\n", p);
return 0;
}
int func(int *p)
{
p++;
return 0;
}
输出:p=0x7fff6f87e89c p 公司:0x7fff6f87e89c
指针 p 被传递给函数 func 并且指针 p 在 func 中递增,但在 main 函数中它的地址仍然相同!将指针传递给函数不是通过引用传递吗?
【问题讨论】:
-
注意:在c中没有通过引用传递。
-
您要递增
main的a还是main的p? -
我只是想检查指针的地址,我在函数func()中增加指针的地址,想检查它是否反映在main()中
-
然后你需要传递指针的地址,在函数内部解引用它并增加这个解引用的结果。
标签: c pointers pass-by-reference