c语言指针的问题 10

我想知道,c语言指针变量,这个指针变量也是像普通变量一样在内存开辟一块空间,然后把这个变量地址存放进去吗,还是说这个指针变量是个虚幻的东西?... 我想知道,c语言指针变量,这个指针变量也是像普通变量一样在内存开辟一块空间,然后把这个变量地址存放进去吗,还是说这个指针变量是个虚幻的东西? 展开
 我来答
阳光穿透空气薄
2018-08-18 · TA获得超过124个赞
知道小有建树答主
回答量:80
采纳率:85%
帮助的人:50.5万
展开全部
并不是虚幻的东西,跟普通变量一样会开辟一块空间。里面存放的数据被当成了另外一块空间的地址。
比如:

int *A;
int B;
A = &B;
A 和 B本身实实在在会占用一块空间,在32位机上面,一般这个空间占四个字节。
A 所占空间的里面的数据当然就是四个字节,这四个字节的数据其意义是B的地址。 根据c语言语法。提取B里面的数据就有了 B 或者*A这两种方式。
追问
A 所占空间的里面的数据当然就是四个字节,那么A占多少个字节呢,是不是只能通过指针的指针才能知道呢?
百度网友2b691b2
2018-08-18
知道答主
回答量:1
采纳率:0%
帮助的人:837
展开全部
开辟空间了的
在编译器里定义一个指针变量,编译器会给这个指针变量分配一个空间,这个空间里存放的是一段内存的首地址,先解释一段内存,一段内存的大小是与你所定义的指针类型相关的,比如int,这段内存占四个字节(当然要看你的机器是多少位的了),则这段内存的首地址是第一个字节的地址,如char类型,占一个字节,这段内存的首地址就是这个字节的地址,还如结构体类型,此时内存大小要看该结构体的所有属性所占内存之和。现在解释这个空间,编译器给指针分配的空间大小是和CPU的寻址长度相关的,比如32位的CPU,它的寻址长度为32位,那么这个空间也就占四个字节,其实不管你定义什么样的指针类型,这个空间只是用来存地址,只占四个字节,而真正该空间所存的地址是哪一段内存的首地址才和所定义的指针类型相关。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式