指针的大小

指针内部存储的是对象的地址,其大小并不因类型(如int*,char*,float*,double*,void*等)不同而变化。在x86和x64架构下,无论指针类型如何,它们通常都是4个或8个字节。这是因为指针实际存储的是内存地址,这个地址的宽度是固定的,与指针指向的数据类型无关。
摘要由CSDN通过智能技术生成

众所周知,指针内部存放着所指向对象的地址,同时,指针由于所指对象·的类型不同可以分为多种类型,如int*、char*、double*、floatr*等等,当然,还有void*类的通用指针;

那指针的大小是否会根据类型不同而改变呢?

这里我们直接输出五个指针类型的大小,结果一目了然

#include<stdio.h>
int main() {
	printf("the size of int* =%d  \n", sizeof(int*));
	printf("the size of char* =%d  \n", sizeof(char*));
	printf("the size of float* =%d  \n", sizeof(float*));
	printf("the size of double* =%d  \n", sizeof(double*));
	printf("the size of void* =%d ",sizeof(void*));
}

 x86架构下

 x64架构下

由此可知,无论指针类型是什么,由于指针存的内容统一都是一个地址,故其大小也都相同,统一为4或8个字节。 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值