首頁 >後端開發 >C++ >你將如何展示C變數的記憶體表示?

你將如何展示C變數的記憶體表示?

PHPz
PHPz轉載
2023-09-09 13:29:06715瀏覽

你將如何展示C變數的記憶體表示?

這裡我們將看到如何列印 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

以上是你將如何展示C變數的記憶體表示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除