[英]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.