(1)指针变量的定义(地址 == 指针)
指针就是内存单元的地址,也就是内存单元的编号。
用一个变量存放地址这种数据称为指针变量。
指针的一般形式:类型说明符 * 变量名;
*表示这是一个指针变量
变量名即为所定义的指针变量名
类型说明符即基类型,表示指针变量所指向变量的数据类型
int * p1;//指针变量p1用来保存某个整型变量的地址
char * p2;//指针变量p2用来保存某个字符型变量的地址
float * p3;//指针变量p3用来保存某个单精度类型变量的地址
double * p4;//指针变量p4用来保存某个双精度类型变量的地址
(2)指针变量的引用
指针变量必须先定义再赋予一个内存地址。下面介绍两个相关的运算符:
取地址运算符 &
作用:取得变量的地址
一般形式:& 变量
指针运算符(间接访问符或解引用) *
作用:表示该指针所指的变量
一般形式:int a = 10;//整型变量存放整型值
int * p = &a;//整型地址(指针)变量存放整型地址值
* p = 100;
实际上,取地址运算符 & 和指针运算符 * 是一对逆运算符
一般 * 有三类:1.乘 a * b
2.定义指针 int * p = &a;
3.解引用 * p = 200;
(3)指针的使用
#include<stdio.h>
int main()
{
int a = 100;//定义一个整型变量a为100
printf("%d\n",a);
int *p;//定义一个整型指针变量P
p=&a;//将a的地址赋值给p
*p=200;//*p跳到a的地址处,赋值为200
printf("%d\n",a);
return 0;
}
(4)二级指针
#include<stdio.h>
int main()
{
int a = 20;
int *p = &a;//定义指针变量 *p,将整型变量a的地址赋值给p
int **pp = &p;//定义二级指针变量 **pp,将整型指针变量p的地址赋值给pp
* pp = &a;//p = &a
** pp = 1000;//通过pp将a的赋为1000
printf("%d\n",a);
}