我是老溫,一名熱愛(ài)學(xué)習(xí)的嵌入式工程師
關(guān)注我,一起變得更加優(yōu)秀!1 不能動(dòng)的“地址”之 void指針1.1 void指針初探void *表示一個(gè)“不知道類型”的指針,也就不知道從這個(gè)指針地址開(kāi)始多少字節(jié)為一個(gè)數(shù)據(jù)。和用int表示指針異曲同工,只是更明確是“指針”。
因此void *只能表示一個(gè)地址,不能用來(lái)&取值,也不能++和--移動(dòng)指針,因此不知道多少字節(jié)是一個(gè)數(shù)據(jù)單位。 int nums[] = {3,5,6,7,9};
void* ptr1 = nums;
//int i = *ptr1; // 對(duì)于void指針沒(méi)法直接取值
int* ptr2 = (int*)nums;
printf("%d,%d
",ptr1,ptr2);
int i = *ptr2;
printf("%d
",i);
從輸出結(jié)果可以看出,無(wú)論是無(wú)類型的void指針還是int類型指針,指向的地址都是一樣的: |