如何显示 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("
"); } 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

更新于:2019 年 7 月 30 日

472 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.