指针
变量的内存地址
在C语言中,要获得变量的地址,需要用到**取地址运算符(Address Operator),即&.
printf("%p",&a);
%p格式符,表示输出变量a,b,c的地址值
地址值是用一个十六进制的无符号整数表示的,其字长一般与主机字长相同
变量的地址:变量在内存中所占内存空间的首地址
变量的值:变量在存储空间中存放的数据
变量的名字
指针的变量的定义和初始化
指针:存放变量的一种特殊类型的变量。
指针变量:具有指针类型的变量,是专门用于存储变量的地址值的变量
定义变量的形式:
类型关键字 * 指针变量名
指针变量的基类型:类型关键字代表变量要指向的变量的数据类型,
指针的初始化
指针变量未初始化意味着指针变量的值为一个随机值。
为了避免忘记指针初始化带给系统带来的潜在危险,为了防止指针乱指一气,习惯上在定义指针变量的同时将其初始化为NULL(在stdio.h中定义为零值得宏)
指向某变量的指针变量,通常简称为某变量的指针
虽然指针变量中存在的是变量的地址值,二者在数值上相等,但在概念上变量的指针不等同于变量的地址。
变量的地址是一个常数,不能对其赋值,二变量是一个变量,其值是可以改变的.
指针变量只能指向同一基类型的变量
对指针初始化的方法
- 直接初始化
- 间接初始化
直接初始化
类型:int *pa = &a;
间接初始化
类型:int *pa;
pa = &a;
间接寻址运算符
直接寻址:直接按变量名或者变量的地址存取变量内容的访问方式
scanf("%d",&a);
printf("%d",a);
间接寻址:用过指针变量间接存取它所指向的变量的访问方式
指针运算符,也称间接寻址运算符即为 * 。间接寻址运算符 * 用来访问指针变量指向的变量的值
通过 * 可以对指针变量实现解引用,即访问指针变量