这段代码的功能是将一个整数转换成其对应的字节表示,并以十六进制格式输出。它使用了一个联合体(union)来实现整数和字符数组之间的转换。在main函数中,首先定义了一个CHI类型的变量chi1,然后将整数1234赋值给chi1.i。接着使用for循环遍历chi1.ch数组,将每个字节以十六进制格式输出。
#include<stdio.h>
typedef union {
int i;
char ch[sizeof(int)];
}CHI;
int main(void)
{
CHI chi1;
int i;
chi1.i = 1234;
for (i = 0; i < sizeof(i); i++) {
printf("%02hhX", chi1.ch[i]);
}
printf("\n");
return 0;
}
使用char数组作为联合的一部分是为了对整型变量中的字节进行直接访问。在这段代码中,通过赋值chi1.i = 1234;
将整数1234存储到联合的整型变量i
中。
接下来,通过循环遍历整型变量i
的每一个字节,并使用printf
函数的%02hhX
格式化说明符将其打印出来,%02hhX
指示以两位十六进制数打印每个字节的内容。
这段代码的目的是以十六进制形式打印整型变量i的每个字节,以便观察整数在内存中的存储方式。通过使用char数组,可以直接访问每个字节,并以十六进制形式打印出来。