在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/C/ gcc報(bào)錯(cuò),invalid use of void expression

gcc報(bào)錯(cuò),invalid use of void expression

void *foo(void *a)
{
        a = (int *)a;
        (*a)++;
        printf( "a = %d\n", *a);
}

程序是這樣的,總是說(shuō)第二行和第三行有錯(cuò)誤!

回答
編輯回答
孤毒

a 是 void*,不能解引用。此外 a = (int *)a; 這句毫無(wú)意義,你把 a 轉(zhuǎn)成 int*,再賦值給 a,又變成 void *

2018年2月27日 10:59
編輯回答
乞許

C語(yǔ)言是靜態(tài)類型的語(yǔ)言,當(dāng)你指定了void *a后,a在其有效域內(nèi)就一直是void *類型無(wú)法改變了。想用int *的時(shí)候,只要用一個(gè)新變量就好了。比如:

void *foo(void *a)
{
        int *b = (int *)a;
        (*b)++;
        printf("a = %d\n", *b);
}
2017年4月26日 08:21