指针,内存地址,打印地址

本文介绍了32位系统中,由于有32根地址线,可以表示2^32个内存单元,每个单元为1字节。&运算符用于获取地址,*用于解引用。通过%p打印地址,以16进制形式展示。指针变量存储地址,例如int* p = &a;。指针变量自身也有地址,并且不同类型的指针长度可能因平台而异,32位系统指针为4字节,64位系统可能为8字节。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值