
这里我们将看到如何打印 C 变量的内存表示。这里我们将显示整数、浮点数和指针。
要解决这个问题,我们必须遵循以下步骤 -
- 获取地址和变量的大小
- 将地址类型转换为字符指针以获取字节地址
- 现在循环获取变量的大小并打印类型转换的指针的值。
示例
#include <stdio.h>
typedef unsigned char *byte_pointer; //create byte pointer using char*
void disp_bytes(byte_pointer ptr, int len) {
//this will take byte pointer, and print memory content
int i;
for (i = 0; i < len; i++)
printf(" %.2x", ptr[i]);
printf("</p><p>");
}
void disp_int(int x) {
disp_bytes((byte_pointer) &x, sizeof(int));
}
void disp_float(float x) {
disp_bytes((byte_pointer) &x, sizeof(float));
}
void disp_pointer(void *x) {
disp_bytes((byte_pointer) &x, sizeof(void *));
}
main() {
int i = 5;
float f = 2.0;
int *p = &i;
disp_int(i);
disp_float(f);
disp_pointer(p);
disp_int(i);
}输出
05 00 00 00 00 00 00 40 3c fe 22 00 00 00 00 00 05 00 00 00









