char 1字节
*p 4字节
int a 4字节
请问这个多余的四个字节是干什么的?
你是指哪个字节多余了?
指针的应用有问题,a变量为Int型,存储其地址的指针需与原变量类型一致,应为int *p,四个字节多余这句话是什么意思?
你这不会报错?char *p = &a居然不报错?两个类型都不一样。
指针的所占内存的大小与你的操作系统有关。 你这里很明显是32位操作系统,指针所占内存大小就是操作系统的位数,32位即4字节,你这里的int类型应该为2字节。64位操作系统上面指针大小为8字节,int类型为4字节
我想你应该是运行在Debug模式下的,试试运行在Release模式下试试。Debug模式为了调试会添加一些必要的信息。而且内存的分配顺序是p,b,a。而且假如p为char,不是指针的话,b的地址减p的地址不为1。
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632