Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

วิธีแสดงการจัดเก็บหน่วยความจำของตัวแปรในภาษา C

บทความนี้จะแสดงวิธีการพิมพ์การจัดเก็บหน่วยความจำของตัวแปรในภาษา C รวมถึงจำนวนเต็ม จำนวนจริง และพอยน์เตอร์

ขั้นตอนการแก้ปัญหา:

  • ดึงที่อยู่และขนาดของตัวแปร
  • แปลงที่อยู่เป็นตัวชี้ตัวอักขระ (character pointer) เพื่อได้ที่อยู่แบบไบต์
  • วนลูปตามขนาดของตัวแปรและพิมพ์ค่าของตัวชี้ที่แปลงแล้ว

ตัวอย่าง

#include <stdio.h>

typedef unsigned char *byte_pointer; // สร้าง byte pointer ด้วย 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 *));
}

int 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