立即学习:https://edu.youkuaiyun.com/course/play/8088/165746?utm_source=blogtoedu
1. 指针变量的定义
变量的指针就是变量的地址。
指针变量定义的一般形式:类型标识符 *标识符;
int *p1;//指向整形变量的指针
float *p2;//指向实形变量的指针
指针指向变量的方法:
int a;
float b;
p1 = &a;
p2 = &b;
说明:
(1)定义指针变量的时候,指针变量前是有*号表示这是正在定义一个指针变量,但使用指针变量的时候,指针变量前是没有星号的;所以,指针变量名是mypoint1,mypoint2,而不是*mypoint1, *mypoint2;
(2)一个指针变量只能指向同一个类型的变量
2. 指针变量的引用
指针运算符(间接访问运算符):*
//指针变量中只能存放地址(指针),不要将一个整型变量(或任何其他非地址类型的数据)赋值给一个指针变量
指针运算符不用于定义变量指针的场合时,代表的是他所指向的变量,如:
int a,b;
int *p1,*p2;// 定义指针,这个*在这里表示该变量是指针变量
a = 100;
b = 200;
p1 = &a; //把变量a的地址赋给p1,现在p1指向了a;
p2 = &b; //把变量b的地址赋给p2,现在p2指向了b;
printf("%d,%d\n",*p1,*p2);//得到*p1=100,*p2=200,即*p1=a,*p2=b
3. 指针的应用
(1)&*p1 含义:&和*在这里一个是取地址运算符,一个是*指针运算符,根据查表,这两个运算符优先级相同。但这两个运算符都是按从右到左结合,所以&*p1其实就是p1
(2)*&a 含义:*&a其实就是a
(3)(*p1)++ 含义:*p1就相当于a,这就相当于a++;
(4)*p1++含义:*p1++等价于*(p1++),指针变量自+1,也是这个指针变量中的内容要自加,但是对于指针来讲,就不一定是自加1;自加几取决于该指针变量的所指向的变量类型。如果p1指向的是整型变量,那么p1++,则p1中的内容要加4