开发者社区> 问答> 正文

[C语言]刚看csapp就卡到了

typedef unsigned char *byte_pointer;

void show_bytes(byte_pointer start,int len)
{
    int i;
    for(i=0;i<len ,i++;)
        printf("%.2x",start[i]);
    printf("\n");
}
int main()
{
    int val = 0x87654321;
    byte_pointer valp = (byte_pointer)&val;
    show_bytes(valp,3);
    getchar();
    return 0;
}

这是《深入理解计算机系统》练习题2.5
我不理解的是 byte_pointer valp = (byte_pointer)&val;不是取地址操作吗,那么valp中的值应该是val的地址吧,可结果却是输出21 43 65这不是val的值吗

展开
收起
a123456678 2016-06-07 18:40:51 2291 0
1 条回答
写回答
取消 提交回答
  • (byte_pointer)&val相当于把int强制转换成了unsigned char*数组。。

    2019-07-17 19:30:44
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载