C语言中一个指针占用多少字节

 我来答
休闲娱乐助手之星M
2018-12-27 · TA获得超过53.8万个赞
知道大有可为答主
回答量:2857
采纳率:100%
帮助的人:113万
展开全部

一个指针变量在内存中占两个字节(small模式编译),一个指针变量在内存中占四个字节(32位机器上),一般都是32位机器的,所以四个字节咯。

指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关。

指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。

扩展资料

1、指针的类型

从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型:

(1)int*ptr;//指针的类型是int*

(2)char*ptr;//指针的类型是char*

(3)int**ptr;//指针的类型是int**

(4)int(*ptr);//指针的类型是int(*)

(5)int*(*ptr);//指针的类型是int*(*)

2、指针所指向的类型

当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。

从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:

(1)int*ptr; //指针所指向的类型是int

(2)char*ptr; //指针所指向的的类型是char

(3)int**ptr; //指针所指向的的类型是int*

(4)int(*ptr); //指针所指向的的类型是int()

(5)int*(*ptr); //指针所指向的的类型是int*()

参考资料来源:百度百科-指针

ahcc08
2017-04-23 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51941
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部
指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关,譬如以前是16为地址,指针即为2个字节,现在一般是32位系统,所以是4个字节,以后64位,则就为8个字节。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蒸蒸zh日上
2018-02-24
知道答主
回答量:14
采纳率:50%
帮助的人:9220
展开全部
借lz的问题,请教大家一个问题吧; 指针占用的字节数和指针的类型有关系吗?谢谢哦~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式