C语言指针指向全局变量,可以改变全局变量的值吗
定义一个全局变量a,定义一个函数caller,在caller内部定义一个指针*p,并将*p指向a,在caller内部对*p地址的值进行+1,那么调用caller函数的时候,全局变量a的值会发生改变吗? 对*p地址指向的值加1。还是对*p存放的地址加1??? 这种问题,你试一试就知道了吧#include <stdio.h>
int a;
void caller(void)
{
int *p = &a;
(*p)++;
}
int main(void)
{
printf("Before, a = %d\n", a);
caller();
printf("After, a = %d\n", a);
return 0;
}
输出如下:
$ gcc test.c && ./a.out
Before, a = 0
After, a = 1 谢谢@小甲鱼,也谢谢@人造人 上午只突然想到了这个问题,却忘了自己动手实验
页:
[1]