指针
指针指向的是数据的地址,数据的地址指向的是该变量单元,将数据的地址形象化的称之为指针,指针的使用有两种方法,第一是直接访问,第二是间接访问。
在定义是 * p表示将p定义为指针变量
在使用时 * p表示取p的值
#include<stdio.h>
int main()
{
int a=100,b=200;//定义两个变量a,b
int *p,*q;//定义两个指针变量p,q
p=&a;//取变量a的地址赋给指针变量p
q=&b;//把变量b的地址赋给指针变量q
printf("a=%d,b=%d",a,b);//输出变量的值
printf("*p=%d,%q=%d",*p,*q);//输出指针变量的值
return 0;
}
指针可以为char,int,float等数据类型
注意指针变量名不加 * 号
不应写为 *p=&a, *q=&b
因为a的地址是赋给指针变量p,而不是赋给 *p(即变量a)
在定义指针变量时必须指定基类型
因为要知道不同类型的数据在内存中所占字节数和存放方式是不同的(例如整形数据占4个字节,字符型占1个字节)。那么,要想通过指针引用一个变量,只只知道地址是不够的,因为无法判断是从地址为2000的一个字节中取出一个字符数据,还是从四个字节中取出一个整形数据。要知道基类型,才能正确的读取指针数据。
一个变量的指针的含义包括两个方面,一是以存储单元编号表示的地址(如编号为2000的字节),二是它指向的存储单元的数据类型(如int ,char等)。
指针变量也可以作为函数参数来使用。
但在使用时要注意其使用规范,在函数执行时要注意形参与实参是单向的值传递,形参值的改变不能引起实参值的随之改变。