答案
#include <stdio.h>
#include <stddef.h>
typedef unsigned char *byte_pointer;
void show_bytes(byte_pointer start,size_t len){
size_t i;
for(i=0;i<len;i++)
printf(" %.2x",start[i]);
printf("\n");
}
void show_int(int x){
show_bytes((byte_pointer) &x,sizeof(int));
}
int main(){
int val=0x87654321;
byte_pointer valp=(byte_pointer) &val;
show_bytes(valp,1);
show_bytes(valp,2);
show_bytes(valp,3);
}
理解一下程序:
我们为了获得多字节对象x的从首地址开始的连续len个字节里面存储的数据,
(1)获得对象x第一个字节的地址。
C的取地址运算符&创建一个指针。表达式&a