내가 다음 여기에 뭔가를 분명하지만 누락 고려하고,int를 int로 변환 한 후 int로 변환합니다.
int k = 10;
int *p = &k;
int i = (int)p;
위의 생산,
warning: cast from pointer to integer of different size
와 다음,
int k = 10;
int *p = &k;
int i = p;
가 발생,
warning: initialization makes integer from pointer without a cast
조금
Converting a pointer into an integer
위의 uintptr_t,
int k = 10;
int *p = &k;
int i = (uintptr_t)p;
위의 경고는 경고없이 작동합니다. 그래서 내 질문은 k는 int이고 p는 k를 가리키는 int 포인터입니다. 왜 내가 역 참조를 얻지 못합니까?
'i'의 가치는 무엇을 기대합니까? –
당신은 어떤 예에서도'p'를 참조하지 않습니다. 질문을 명확히 할 수 있습니까? – nmichaels