小呆呆希望我的博文能够对朋友们有所帮助!!
下面是指针入门知识点总结:
看一段简单的代码
#include <stdio.h>
int main(void)
{
//我们定义了一个 变量p,该变量是一个指针变量,存放了int类型变量的地址,p的数据类型:int *,*p的数据类型:int
int * p ;
//我们定义了一个 变量i,该变量是一个普通变量
int i=3;
//因为p变量未经过初始化,所以p的值是个垃圾值,该值的大小与操作系统有关,而且同一操作系统,每次都一样
printf("%d\n",p);//-858993460
// 1245048 为 i变量的地址
printf("%d\n",&i);//1245048
//将i的地址取出来,则等式右边变成了一个指针变量,然后将该部分 赋给 p,则 *p 与 i完全等价
p=&i;/*p保存了i的地址*/
printf("%d\n",i);//3
printf("%d\n",&i);//1245048
printf("%d\n",p);//1245048
//当i的值改变后,*p 发生了变化,p却没有变化,说明无论i如何改变,内存地址不会变,变量的仅是该地址保存的值
i=5;
printf("%d\n",*p);//5
printf("%d\n",p);//1245048
//同上,p指针指向的地址的值变了,i变量指向的值也变了
*p=7;
printf("%d\n",*p);//7
printf("%d\n",i);//7
printf("%d\n",p);//1245048
return 0;
}