C语言之指针理解篇----防备忘
指针这个东西,ε=(´ο`*)))唉!
指针变量是占用存储空间的。
int *a;这个东西是占用内存空间的,至于占用多少,自己去用sizeof去算。
定义个指针变量之后,它必须先指向一个地址,才能往它指向的地址里放数值。
还有下面这个东西:
void fun(int *a,int *b)
{
a=b;
}
int main()
{
int *a=NULL;
int b=10;
fun(a,&b);
printf("%d \n",a); //输出为0,也就是仍然指向NULL
}
这里我一直以为,a这个指针变量就成了b所在的地址呢,原来不是!
进入这个fun这个函数,相对于指针变量来说,仍然是【传值调用】,所以a不会变。
void fun(int a,int b)
{
a=b;
}
int main()
{
int a=1;
int b=10;
fun(a,b);
printf("%d \n",a); //结果仍为1,不为10
}
这个两段代码,其实都是一个道理。请谨记!