新發(fā)基金的好處和壞處是什么?新基金的封閉期一般是多久?
新發(fā)基金的好處和壞處是什么?新發(fā)基金的優(yōu)點(diǎn):1、認(rèn)購(gòu)費(fèi)率低:一般
2023/07/06
(資料圖片)
前兩天有同學(xué)去做筆試題,遇到了這么一個(gè)題目:
sizeof(void);結(jié)果是多少?仔細(xì)一想,好像真沒(méi)寫過(guò)這樣的代碼。
void 也是C語(yǔ)言中常見(jiàn)的類型,一般用于修飾函數(shù)的類型。
比如函數(shù)不需要返回?cái)?shù)據(jù),就會(huì)在前面加上void。
void test();如果函數(shù)沒(méi)有參數(shù),形參括號(hào)里面也可以加上void。
void test(void);那 void 能不能用于定義變量?
void a;這個(gè)肯定不行,編譯的時(shí)候就會(huì)當(dāng)作語(yǔ)法錯(cuò)誤處理。原因的話,我覺(jué)得可能是定義變量的時(shí)候,編譯器不好給他分配內(nèi)存。
printf("%lu", sizeof(void));在 Ubuntu 環(huán)境下,強(qiáng)行輸出:
sizeof(void)結(jié)果是1,而且在gcc的相關(guān)文檔中也明確表示,sizeof允許使用在void和函數(shù)名上,結(jié)果返回1。
In GNU C, addition and subtraction operations are supported on pointers to void and on pointers to functions. This is done by treating the size of a void or of a function as 1.A consequence of this is that sizeof is also allowed on void and on function types, and returns 1.The option -Wpointer-arith requests a warning if these extensions are used.但是在其他編譯器下結(jié)果怎么樣,沒(méi)有試過(guò)。所以總結(jié)一下,sizeof(void)沒(méi)什么實(shí)際意義。但是 void * 類型就非常的實(shí)用。它可以用來(lái)定義變量,表示變量是個(gè)指針,但是指針指向什么類型的數(shù)據(jù),只有等使用的時(shí)候才知道。因?yàn)橹羔樖怯虚L(zhǎng)度的,所以編譯器給他分配內(nèi)存也沒(méi)有問(wèn)題。再比如我們經(jīng)常使用的malloc函數(shù),它只負(fù)責(zé)在堆空間分配內(nèi)存,但是這段內(nèi)存保存什么類型的數(shù)據(jù),也只有用戶自己知道,于是malloc直接返回void *,反正它是個(gè)地址,等到使用的時(shí)候,再由用戶進(jìn)行強(qiáng)轉(zhuǎn)就行。
char *addr = (char *)malloc(sizeof(char) * 128);前面我們講過(guò)sizeof的很多用法,沒(méi)想到它還是層出不窮,既然這樣,我又想到了一個(gè):
siezof("a");結(jié)果是多少?如果你知道答案,歡迎私信留言。 審核編輯:湯梓紅
標(biāo)簽: