您将如何显示C变量的内存表示形式?

在这里,我们将看到如何打印C变量的内存表示形式。在这里,我们将显示整数,浮点数和指针。

为了解决这个问题,我们必须遵循以下步骤-

  • 获取变量的地址和大小

  • 将地址类型转换为字符指针以获取字节地址

  • 现在循环查找变量的大小,并输出类型转换指针的值。

示例

#include <stdio.h>
typedef unsigned char *byte_pointer; //create byte pointer using char*
void disp_bytes(byte_pointer ptr, int len) {
    //这将使用字节指针,并打印内存内容
   int i;
   for (i = 0; i < len; i++)
      printf(" %.2x", ptr[i]);
   printf("\n");
}
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