1.指针是什么?
指针是一种保存变量地址的变量。
在计算机中每个存储单元(一个字节)都有一个编号,这个编号称为变量地址。
普通变量的值就是实际值,指针变量的值是变量的地址
- 取地址 &
#include<stdio.h>
main(){
int a=0;
printf("%p\n",&a);
}
- 说明
1.&: 在变量前面加&,可以表示获取变量的地址
2.%p: 是地址的输出格式符
PS: 变量的地址通常采用16位进制数表示
2.指针的使用
2.1 定义指针
定义指针的形式与定义普通变量基本一样,只需在变量名和数据类型之间加*
#include<stdio.h>
main(){
int a=0;
int* p;//定义一个int型的指针p
p=&a;//将a的地址赋给指针变量p
printf("%d\n",*p);//输出结果是a
}
指针变量只能用同类型的变量赋值
也可以对指针直接进行初始化,如下:
#include<stdio.h>
main(){
int a=0;
int *p=&a;
printf("%d\n",p);//输出为十进制数的地址
printf("%p\n",p);//输出为十六进制数的地址
printf("%d\n",*p);//输出为0
}
指针和变量一样,必须是赋值之后才可以使用
非法格式如下:
int a=0;
int *p=a;//这是非法的,对指针初始化时,给指针赋的值必须是地址
- 引用
int a=0;
int &p=a;