32位系统有32根地址线/数据线
每根地址线上有0/1两种电位状态
则32位系统一共可以表示 232次方个地址,对应232个内存单元。
每个内存单元的大小为1byte,即为1字节 ---- 8bit位
& 表示取地址符号(把地址找出来)
*为解引用操作符(照着地址找到变量)
%p打印地址
#include <stdio.h>
int main()
{
int a = 0;
printf("%p\n",&a );//取a的地址,并打印
return 0;
}
执行结果:
16进制方式展示的地址位
对应二进制:1111 1000 1111 1110 1101 0100
指针变量:用来存放地址的变量叫做指针变量
指针变量定义方式 int* p = &a;
指针变量同样存放在内存空间中,因此也有地址
int main()
{
int a = 10;
int* p = &a;//取整型变量a的地址,存放在指针变量p中
int* q = &p;//取指针变量p的地址,存放在指针变量q中
*p = 15;//*p为找到p地址下对应的变量,即a
//(*p = 15;) == (a = 15;)
printf("a的地址为:%p,存在p中\n", p