首页 > 文章列表 > 你将如何展示C变量的内存表示?

你将如何展示C变量的内存表示?

内存表示(Memoryrepresentation) C变量(Cvariable) 展示(Display)
352 2023-08-27

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

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

  • 获取地址和变量的大小
  • 将地址类型转换为字符指针以获取字节地址
  • 现在循环获取变量的大小并打印类型转换的指针的值。
  • < /ul>

    示例

    #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("

    "); } 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