指针(首地址)对应内存

指针是首地址

#include "stdio.h"
#include "stdlib.h"

int main()
{
int *a;
a=malloc(3*4);
*a=0x33;
*(a+1)=0x34; 
*(a+2)=0x35;

printf("a[0]=%x\n",a[0]);
printf("a[1]=%x\n",a[1]);
printf("a[2]=%x\n",a[2]);
	
printf("*a=%x\n",*a);
printf("*(a+1)=%x\n",*(a+1));
printf("*(a+2)=%x\n",*(a+2));
return 0;
}

运行结果:

指针容量是根据操作系统的位数决定的,16位的操作系统下指针容量是2个字节,32位则是4个字节,64位则是8个字节。指针容量与指针自增无关。

指针是首地址,且指针对应内存,不同指针类型对应的内存大小不同。

例如,

int型指针,对应内存为4个字节;“int *p; p++; ”意思就是下移一个指针地址,该地址对应的内存占用4个字节(4个内存单元)。

char型指针,对应内存为1个字节;“char *p; p++; ”意思则是下移一个指针地址,该地址对应的内存占用1个字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值