一、指针变量的引用
(1)&:取地址运算符。例如,&a取得变量a的地址;
(2)* :指针运算符(或称间接访问运算符)取得指针变量指向的内容。例如,*p取得指针变量P所指向的变量的值。
指针变量中只能存放地址(指针),不要将一个整数(任何其他非地址类型的数据)赋给一个指针变量。
例子:
#include<stdio.h>
void main(){
int a=10,b=20;
int *pointer_1,*pointer_2; //定义指针变量
pointer_1=&a; //指针变量pointer_1指向a
pointer_2=&b;
printf("%d,%d\n",a,b);
printf("%d,%d\n",*pointer_1,*pointer_2); //通过指针变量取得变量的值
}
二、数组的指针和指向数组的指针变量
1.数组的指针就是指数组的首地址,数组元素的指针是指向=数组元素的地址。
C语言规定,数组名代表数组的首地址。
2.如果a是数组名,p是指向数组的指针变量,其初值为p=a,引用一个数组元素的可以有以下两种方法:
(1)下标法,采用a[i]、p[i]的形式访问数组元素;
(2)指针法,采用*(a+i)或 *(p+i)形式,用指针方法访问数组元素。
3.函数中改变实参数组元素的值,实参和形参对应关系有以下四种:
(1)形参和实参都是数组;
(2)实参是数组,形参是指针变量;
(3)实参、形参都是指针变量;
(4)实参是指针变量,形参是数组。
三、指向结构体变量的指针
等价形式:
(1)结构体变量.成员名;
(2)(*指向结构体变量的指针变量).成员名;
(3)指向结构体变量的指针变量—>成员名.