指针是c语言的难点 称之为c语言的灵魂一点也不为过,不过指针用好了能事半功倍,用不好bug满天飞。
一、指针的概念
指针也是变量只不过是特殊的变量,指针的值是另一个变量的地(也就是变量所在的内存地址)
指针的定义:在变量名之前加 * 号即可。 如:char *point;
tips:请明确区分 “指针的地址” 和 “指针指向的地址” 的概念。 因为指针也是一个变量也有自己的地址。(也就是指针的地址)
二、指针的应用
1.指针与普通变量
指针与普通变量比较简单,正如上文概念里面所提及的,当指针指向一个普通变量时,指针的内容也就是变量的地址。
例如:int a=123;
int *point =&a; // & 取地址符号
printf(" *point=%d ",*point);// 结果是 *point=123
2.指针与数组
这里会涉及两个概念 指针数组 和 数组指针 ,可能这也是让各位同学发懵的地方。
数组指针:指向数组的指针就是指针数组,是不是很简单呢。
char test[5]="hello"; //定义普通的字符数组
char (*point)[5]=&test; //定义指针指向数组 指针指向一个数组 该数组含有五个元素
指针数组:像普通数组一样,只不过指针数组里储存的元素是指针。
int *p[5];//定义一个数组指针 首先数组是一个指针类型的数组 且每一个元素都是指针
3.指针与函数
未完结,待更新