在我们QQ群里( 297937866 / 303996535 )经常有C语言学习者说指针太难懂,学起来比较吃力。那么针对指针,我们将分为4个小节分别进行介绍。
一:定义
指针的定义:变量的地址就叫做变量的指针。
int a = 10 ; //定义整形(在内存上分配2个字节的存储空间)变量a,并赋初始值。
按照指针变量的定义,整形变量a的地址&a就是整形变量a的指针。
指针变量的定义:用来存储变量地址的变量叫做指针变量。
int *p = &a ; //定义整形(在内存上分配2个字节的存储空间)指针变量p,并把整形变量a的地址赋给指针变量p。
说明:1:*p中的,对p来说,代表p是一个指针。对整体来说,它们代表取出p中对应数值(即变量a的地址)中的内容(即a的值 10 )。
2:p中存储的是地址值。即变量a的地址(&a)。
3:p的类型是int类型,那么p只能存储int类型变量的地址(&int变量)。
二:应用
#include <stdio.h>
void main()
{
float a , b , *p ;
p = &a ; //把a的地址赋给p。p是一个指针变量,用来存储对应数据类型变量的地址。
puts("\n任意请输入两个数:");
scanf("%f%f",p,&b);//输入的第一个数存放在p中数据在内存上与之对应的内存空间中。
printf("\na = %f,b = %f \n",*p,b);
}
下图是对指针变量p与变量a之间相关联系的解析
三:总结
1:变量的地址又叫指针,指针不是指针变量。
2:用来存放变量地址的变量叫指针变量。
3:什么类型的指针变量决定它存放什么类型的变量地址。比如int类型的指针变量只能存放int类型的变量地址。char类型的指针变量只能存放char类型的变量地址。