>  기사  >  백엔드 개발  >  C 변수의 메모리 표현을 어떻게 표시합니까?

C 변수의 메모리 표현을 어떻게 표시합니까?

PHPz
PHPz앞으로
2023-09-09 13:29:06699검색

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으로 문의하시기 바랍니다. 삭제