일부 기본 데이터 유형에 대한 포인터의 형변환 (내부적으로 발생하는 일)

Sumanth K gowda

포인터가 기본 데이터 유형으로 형변환되면 어떻게됩니까? 왜 우리는 가치를 얻습니까?

예를 들면 :

int h=4;
int * ph=&h;
printf("%p",ph);
printf("%d",ph);

두 print 문은 서로 다른 값을 인쇄합니다.

pm100
printf("%p",ph);

런타임에 "저기 봐, 그 메모리는 포인터입니다.로드하고 16 진수로 인쇄하십시오." 이것은 컴파일러에게 말하지 않고, 컴파일러는 printf가 무엇을하고 있는지 알지 못합니다 (실제로 대부분의 현대 컴파일러는 printf 문을 살짝 들여다 보며, 아마도 경고를 받았을 것입니다).

printf("%d",ph);

"그 메모리 조각을보고 정수입니다.로드하여 사람이 읽을 수있는 10 진수로 인쇄하십시오"

ph int에 대한 포인터라는 점을 감안할 때 첫 번째는 올바른 작업을 수행하고 포인터의 값을 인쇄합니다.

두 번째 동작은 시스템의 int 및 포인터의 크기와 표현에 따라 다릅니다. 값은 '정말'포인터이지만 런타임에 int를 알려줍니다. 많은 시스템에서 포인터와 정수는 32 비트입니다. 이 경우로드는 32 비트를로드하고 인쇄는 해당 비트를 정수로 해석하고 포인터의 기본 10 값을 인쇄합니다. 다른 시스템에서 포인터는 64 비트이고 int는 여전히 32 비트입니다. 당신이 어떤 값을 말하지 않기 때문에 무슨 일이 일어나고 있는지 알기가 어렵지만 내가 추측해야한다면 당신이 같은 값을 얻고 있다고 말할 것입니다.

두 번째는 '정의되지 않은 동작'이라는 것입니다. 시스템에 거짓말을하고 있습니다. 나쁘고 혼란스럽고 설명 할 수없는 일이 발생할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

각 데이터 멤버에 동일한 기능 적용-이기종 유형에 대한 변환

분류에서Dev

일반 매개 변수를 기본 데이터 유형으로 변환

분류에서Dev

일반 매개 변수를 기본 데이터 유형으로 변환

분류에서Dev

'void *'를 'PHImageContentMode'유형의 매개 변수로 보내는 정수 변환에 대한 호환되지 않는 포인터 (일명 'enum PHImageContentMode')

분류에서Dev

일반적으로 사용되는 내부 또는 외부 데이터 처리 유형은 무엇입니까?

분류에서Dev

Swift에서 동일한 데이터 유형 다중 변수 선언에 대한 기본 이니셜 라이저

분류에서Dev

단일 스레드 환경에서 변경 가능한 데이터 유형으로 인해 발생하는 일반적인 문제 클래스는 무엇입니까?

분류에서Dev

MPI 창에 대한 기준 포인터로 파생 된 데이터 유형

분류에서Dev

고유 한 데이터 형식으로 MATLAB에서 대용량 파일 읽기

분류에서Dev

경고 : 조건부에서 포인터 유형이 일치하지 않습니다. 동일한 유형의 두 값을 사용하는 경우

분류에서Dev

컴파일 타임에 비 정적 데이터 멤버에 대한 포인터의 객체 유형을 얻는 방법은 무엇입니까?

분류에서Dev

Fortran 파생 형식 내부의 C 함수에 대한 포인터 보유

분류에서Dev

대규모 데이터 세트에서 행 값 (일부는 일부 고유 중복)을 기반으로 대체 선 색상에 대한 Excel 조건부 서식

분류에서Dev

일반 유형의 데이터 항목을 처리하고 목록으로 변환하는 함수 만들기

분류에서Dev

Decodable을 사용하여 기본 JSON 응답에 대한 개체 유형 및 일반 유형의 데이터 디코딩

분류에서Dev

Ruby의 해시 데이터 유형에서 "기본값은 동일한 객체"

분류에서Dev

멤버 변수와 동일한 유형의 포인터를 가진 개체에 대한 포인터를 가질 수없는 이유는 무엇입니까?

분류에서Dev

함수 유형에 대한 인터페이스 내의 일반 유형

분류에서Dev

Excel VBA는 한 셀의 데이터를 행으로 변환 (유형 불일치 오류)

분류에서Dev

포인터 일 때 함수의 반환 유형에 대한 혼란

분류에서Dev

서로 다른 두 데이터 프레임의 열을 동일한 데이터 유형으로 강제 변환

분류에서Dev

대수 데이터 유형이 포함 된 Typeclass 스타일 기본 메소드?

분류에서Dev

일부 MySQL 데이터 유형에 추가 바이트가 필요한 이유는 무엇입니까?

분류에서Dev

JSON 데이터 유형을 일치하는 C # 유형으로 변환하는 방법

분류에서Dev

TypeScript : 동일한 유형 / 인터페이스 내의 조건부 유형

분류에서Dev

인터넷에서 다운로드 한 일부 파일에는 기본적으로 실행 권한이 있습니까?

분류에서Dev

인터넷에서 다운로드 한 일부 파일에는 기본적으로 실행 권한이 있습니까?

분류에서Dev

일반 유형에 대한 사용자 정의 변환 생성

분류에서Dev

내 사용자 지정 게시물 유형의 첨부 파일에 대한 파일 이름과 파일 크기를 얻는 방법

Related 관련 기사

  1. 1

    각 데이터 멤버에 동일한 기능 적용-이기종 유형에 대한 변환

  2. 2

    일반 매개 변수를 기본 데이터 유형으로 변환

  3. 3

    일반 매개 변수를 기본 데이터 유형으로 변환

  4. 4

    'void *'를 'PHImageContentMode'유형의 매개 변수로 보내는 정수 변환에 대한 호환되지 않는 포인터 (일명 'enum PHImageContentMode')

  5. 5

    일반적으로 사용되는 내부 또는 외부 데이터 처리 유형은 무엇입니까?

  6. 6

    Swift에서 동일한 데이터 유형 다중 변수 선언에 대한 기본 이니셜 라이저

  7. 7

    단일 스레드 환경에서 변경 가능한 데이터 유형으로 인해 발생하는 일반적인 문제 클래스는 무엇입니까?

  8. 8

    MPI 창에 대한 기준 포인터로 파생 된 데이터 유형

  9. 9

    고유 한 데이터 형식으로 MATLAB에서 대용량 파일 읽기

  10. 10

    경고 : 조건부에서 포인터 유형이 일치하지 않습니다. 동일한 유형의 두 값을 사용하는 경우

  11. 11

    컴파일 타임에 비 정적 데이터 멤버에 대한 포인터의 객체 유형을 얻는 방법은 무엇입니까?

  12. 12

    Fortran 파생 형식 내부의 C 함수에 대한 포인터 보유

  13. 13

    대규모 데이터 세트에서 행 값 (일부는 일부 고유 중복)을 기반으로 대체 선 색상에 대한 Excel 조건부 서식

  14. 14

    일반 유형의 데이터 항목을 처리하고 목록으로 변환하는 함수 만들기

  15. 15

    Decodable을 사용하여 기본 JSON 응답에 대한 개체 유형 및 일반 유형의 데이터 디코딩

  16. 16

    Ruby의 해시 데이터 유형에서 "기본값은 동일한 객체"

  17. 17

    멤버 변수와 동일한 유형의 포인터를 가진 개체에 대한 포인터를 가질 수없는 이유는 무엇입니까?

  18. 18

    함수 유형에 대한 인터페이스 내의 일반 유형

  19. 19

    Excel VBA는 한 셀의 데이터를 행으로 변환 (유형 불일치 오류)

  20. 20

    포인터 일 때 함수의 반환 유형에 대한 혼란

  21. 21

    서로 다른 두 데이터 프레임의 열을 동일한 데이터 유형으로 강제 변환

  22. 22

    대수 데이터 유형이 포함 된 Typeclass 스타일 기본 메소드?

  23. 23

    일부 MySQL 데이터 유형에 추가 바이트가 필요한 이유는 무엇입니까?

  24. 24

    JSON 데이터 유형을 일치하는 C # 유형으로 변환하는 방법

  25. 25

    TypeScript : 동일한 유형 / 인터페이스 내의 조건부 유형

  26. 26

    인터넷에서 다운로드 한 일부 파일에는 기본적으로 실행 권한이 있습니까?

  27. 27

    인터넷에서 다운로드 한 일부 파일에는 기본적으로 실행 권한이 있습니까?

  28. 28

    일반 유형에 대한 사용자 정의 변환 생성

  29. 29

    내 사용자 지정 게시물 유형의 첨부 파일에 대한 파일 이름과 파일 크기를 얻는 방법

뜨겁다태그

보관