永发信息网

C语言二级指针问题: int x=0x100100; char *p=(char *)&x; *p

答案:1  悬赏:0  手机版
解决时间 2021-11-13 20:46
C语言二级指针问题: int x=0x100100; char *p=(char *)&x; *p
最佳答案
x的初值是0x100100也就是一个16进制数,指针p指向A的首地址,根据16进制数,此时p指向的是开头的0x10,然后通过指针赋值,此时的x是0x410100。同理指针移位2位,指向末端的0x00。赋值过后,x == 0x410132,把x拆分成3个字节,0x41 0x01 0x32。 由于我们目前用的计算机大部分是小端对齐。高低位存储的机制(具体一时间我忘记怎么解释,可以自己百度大小端对齐看看),所以实际在内存中是这样的0x320141(也就是按字节反过来),用%x输出16进制数,所得为问题所示结果。追问每次指针指向地址都是两位吗?追答这里的指针指的是一个字节
8位一个字节
比如你的0x100100换成2进制就是0001 0000 ,0000 0001, 0000 0000。这里的一个数字是1位,4位是一个字,8位是一个字节。你的指针式char *型,char型是一个字节的,所以p++是指针后移一个字节。如果你的问题里指针是int *,那就要移动4个字节了,结果就会不一样。如果可以的话,学习一下各个类型变量所占内存空间也是挺好的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
三十七岁属猴的是什么命
在坐公交车去乌鲁木齐36中
1.398四舍五入到百分位是多少
一台电动机的额定电压是220V,额定功率5.5Kw
跪求~宫斗里讽刺别人的问题~
“洽”这个字怎么读?
ppt里如何裁剪图片为任意形状?
请问如果现有50万元怎样投资好呢?
大家后悔过自己抽烟吗
vivorev2.11.5是什么手机
为什么电脑播放不了rmvb的视频
金雅轩好门窗怎么去啊,有知道地址的么
盘塘村集贸市场地址在什么地方,我要处理点事
镇扬城际公交经过中山桥站吗现在
学校打架,有个人比我高比我壮,求如何打倒他
推荐资讯
865G(PE)主板和945主板有什么区别?
良庆区银海大道与浪东站的距离有多远?想从浪
大家好,我是学长,你们有什么想问的
育才教育(中园三路)地址有知道的么?有点事想
谁知道海词的生词本在哪里啊?怎么找到?
路过滦县都有哪几个车次
盗墓笔记蛇沼鬼城讲什么的
一个人喜欢了我九年,一开始因为我年龄太小,
皇苑美容美体养生会所地址好找么,我有些事要
北京平均绩效工资多少
逍遥用哪个被动技能好
钠基膨润土的性质
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?