c语言问题

[复制链接]
查看11 | 回复3 | 2011-1-31 04:51:22 | 显示全部楼层 |阅读模式
首先说明一下,unsigned short占用2个字节,long在32位系统中占用4个字节;我们对于指针进行操作时,指针移动的步长和它的类型是有关的,举例如下:如果指针p的类型是char* ,那么p+1,就表示p向后挪动1个字节;如果指针p是unsigned short* ,那么p+1就表示p向后挪动2个字节;如果指针p是long* ,那么p+1就表示p向后挪动4个字节;现在来看你的题,本来MyArray+2,其实是向后移动4个字节,指向4这个元素;但是被转化为long*后,它就往后移动了8个字节,指向了0x1284,这是对这个指针进行取值,它的结果应该是0x00051284;然后再做类型的强制转换,从long转到char,截断高3...
回复

使用道具 举报

千问 | 2011-1-31 04:51:22 | 显示全部楼层
dalfjomf nak jd;laj goi jl;54ngl;adka;fd;lkl;gjdkaljfiejf jierjfiand padf,dnagoa ngra;l ngieean iafnengdkahfuegb oixoangdiaognaudba b uyewb vb yqb djb aeka bmzh m,zvmfael;fer...
回复

使用道具 举报

千问 | 2011-1-31 04:51:22 | 显示全部楼层
值是4 (long*)是类型转换 第三个不清楚自己去试一下吧...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行