電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 43|回復(fù): 0
收起左側(cè)

揭秘 C 語言的 void 指針

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

使用道具

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表