簡體   English   中英

C空指針查詢-不知道為什么我的代碼無法按預期工作:(

[英]C Void Pointer Inquiry - Don't get why my code is not working as I intended :(

誰能向我解釋為什么printf(“%d \\ n”,(int *)p [0])不打印10?

void *p[10] = {NULL};
int a = 10;
p[0] = &a;
printf("%d\n", (int *)p[0]);

因為您將數組中的指針解釋為指向int( (int *)p[0] )的指針,但沒有取消引用,所以請*(int *)p[0]

%d對應的參數必須為int ,但p[0]是指針,而不是int 您需要使用*運算符取消引用。

printf("%d\n", *(int *)p[0]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM