8.2.1使用指针变量的例子
首先,请看一个代码实例。
提示:"&"是地址获取符。
#include<stdio.h>
int main(void){
int a=100,b=10; //定义整型变量 a,b,并初始化。
int *pointer_1,*pointer_2; //定义指向整型数据的指针变量pointer_1,pointer_2
pointer_1=&a; //把变量a的地址赋给指针变量pointer_1
pointer_2=&b; //把变量a的地址赋给指针变量pointer_2
printf("a=%d,b=%d\n",a,b); //输出变量a和变量b的值
printf("*pointer_1=%d,*pointer_2=%d\n",*pointer_1,*pointer_2);//输出变量a和b的值
return 0;
}
代码中的知识提炼:
1、“ * ” 表示 “指向”,可称为“指向符”,或者“访问符”。
2、定义指针变量时,左侧应有类型名,否则就不是定义指针变量。
3、代码中有两处出现了*pointer_1和*pointer_2,二者的含义不同。
前者是定义指针变量,后者是访问所指向的变量。
8.2.2 怎样定义指针变量
类型名 *指针变量名;
在定义指针变量时,必须指定其“基类型”,基类型是用来指定指针变量可以指向的变量的类型。
指针变量是基本数据类型派生出来的类型,它不能离开基本数据类型而独立存在。
一个变量指针的含义包括两个方面,一是以存储单元编号表示的纯地址(如编号为2000的字节),一是它指向的存储单元的数据类型(int,char,float等)。
指针变量的正确说法应该是:a是指向整型数据类型的指针变量。b是指向单精度型数据的指针变量。c是指向字符型数据的指针变量。
“ int * ” 读作 “指向int的指针” 或简称“ int指针 ”。
注意:
指针变量中只能存放地址(指针),不要将一个整数赋给一个指针变量。在程序中是不能用一个数值代表地址的,地址只能用地址符“&”得到,并且赋给一个指针变量,如“p=&a;”。
8.2.3 怎样引用指针变量
1、给指针变量赋值 p=&a; //把a的地址赋给指针变量p
2、引用指针变量指向的变量,如果已执行“p=&a”,即指针变量p指向了整型变量a,则
printf("%d",*p); //输出的就是变量a的值
3、引用指针变量的值。如
printf("%o",p); //以八进制形式,输出变量a的地址值。
注意:熟练掌握两个有关的运算符。如:
1、& 取地址运算符。&a是变量a的地址。
2、* 指针运算符(或称“间接访问”运算符),*p代表指针变量p指向的对象。
未完待续。。。