C语言之指针理解篇----防备忘

梦想与她 提交于 2020-02-04 21:16:06

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
}

这个两段代码,其实都是一个道理。请谨记!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!