如果我将指针声明p
为int *p
; 在主模块中,我可以p
通过分配已经声明的另一个整数变量p = &a;
where来更改包含的地址。a
我现在想通过使用以下函数来更改地址:
void change_adrs(int*q)
{
int *newad;
q = newad;
}
如果我从主模块调用这个函数
int main()
{
int *p;
int a = 0;
p = &a; // this changes the address contained by pointer p
printf("The address is %u\n", p);
change_adrs(p);
printf("The address is %u\n", p); // but this doesn't change the address
return 0;
}
地址内容不变。将函数用于同一任务有什么问题?