C语言里指针指不论指向任何变量它自身都只占4个字节为什么?

指针不是只存放变量第一个字节的地址吗?那他不是应该占1个字节啊?... 指针不是只存放变量第一个字节的地址吗?那他不是应该占1个字节啊? 展开
 我来答
m358807551
2013-03-09 · 超过17用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:27.2万
展开全部
对啊
指针是存放地址用滴。。

打个比方,你要寄一封信,得写邮政编码吧。。
现在咱中国都用6个数字来代表一个县。。

好嘞,明白了吧,你声明一个指针的过程就相当于要一个信封,让指针指向变量的过程就像在信封上写上邮编。。让它来指向一个县。

至于你问为啥指针总占4个字节,就相当于在问我国邮政编码怎么是6位啊。。
因为是特么国家规定的。。无论你的邮编指向哪个县(对应指针指向变量),信封上的6个框框总不会变把。,
风若远去何人留
推荐于2017-12-18 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450129
专业C/C++软件开发

向TA提问 私信TA
展开全部
指针存放的是内存地址.
内存地址多少位,是由编译器决定的.
编译器如果是32位的,那么地址就是4字节.
如果是64位的,那么就是八字节.
不会因为存放数据类型的不同而变化.
就像家里的门牌号, 不管家里住多少人, 是别墅还是平房, 门牌号都是街道统一规定的.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8aedf19
2013-03-09 · TA获得超过606个赞
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:112万
展开全部
这是编译器决定的,和int,char,long占几个字节一样。
在dos系统的TC编译器下就有2字节的指针,
在32位windows操作系统(XP,win7 32位)VC编译器下(最常用的环境)指针就是4个字节;
在64位windows(win7 64)的 VC(x64设置)下有8个字节的指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappLBrvg51ScXeFa
2013-03-09 · 超过10用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:27万
展开全部
指针自己也是一个变量 只不过这个变量代表着一块内存地址。
因为32位系统地址宽度为4个字节。为了表示地址,指针长度就是32位
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麦湉绳玮琪
2019-09-27 · TA获得超过3768个赞
知道大有可为答主
回答量:3075
采纳率:26%
帮助的人:192万
展开全部
一个指针变量在内存中占两个字节(small模式编译)
一个指针变量在内存中占四个字节(32位机器上)
一般都是32位机器的,所以四个字节咯。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式