存放地址的变量称为指针变量,它用来指向另一个对象(如变量,数组,函数等)
定义指针变量的一般形式为:类型名 *指针变量
如:int *pointer_1,*pointer_2;
其中,int为定义指针式必须指定的“基类型”,指针变量的基类型用来指定此指针变量可以指向的变量的类型。
float *pointer_3 ; //指向float型变量的指针变量,简称float指针
char *pointer_4; //指向字符型变量的指针变量,简称char指针
可以再定义变量时,同时对他初始化,如:
int *p=&a,*q=&b; //定义指针变量p,q 并分别指向a,b
注意:(1)指针变量 int *p; 变量名为p;
p=&a; //把变量b的地址赋给指针变量p
#include<stdio.h>
#include<windows.h>
int main()
{
int *p;
int a = 5;
p = &a;
printf("p=%d\n",p);
printf("*p=%d\n",*p);
printf("&a=%d\n",&a);
printf("a=%d\n",a);
system("pause");
return 0;
}
输出结果
(2)定义指针变量时必须指定基类型。
不同类型的数据在内存中所占的字节数和存放方式是不同的。
例:int a,*p;
p=&a;
&a不仅包含变量a的位置还包括“存储的数据是整型”的信息,若定义指针变量为int型即它所指向的只能是整型数据,如不匹配则会出现警告。
所以,在说明变量类型时不能一般的说“p是一个指针变量”,而应完整的说:“p是指向整型数据的指针变量。”
(3)指针变量中只能存放地址,不要将一个整数赋给一个指针变量。