第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么sizeof被視為運算符?

為什么sizeof被視為運算符?

C
叮當貓咪 2019-10-08 14:49:15
為什么將其sizeof視為運算符而不是函數(shù)?要成為運營商,必須具備什么財產(chǎn)?
查看完整描述

4 回答

?
守候你守候我

TA貢獻1802條經(jīng)驗 獲得超10個贊

因為C標準是這樣說的,所以它是唯一的選擇。

結(jié)果:

  • sizeof的操作數(shù)可以是帶括號的類型sizeof (int),而不是對象表達式。

  • 括號是不必要的:int a; printf("%d\n", sizeof a);完全可以。人們經(jīng)??吹剿鼈儯紫仁且驗樗鼈冃枰鳛轭愋娃D(zhuǎn)換表達式的一部分,其次是因為sizeof具有很高的優(yōu)先級,因此sizeof a + b與并不相同sizeof (a+b)。但是它們不是sizeof調(diào)用的一部分,而是操作數(shù)的一部分。

  • 您不能使用sizeof的地址。

  • 作為sizeof操作數(shù)的表達式不會在運行時求值(sizeof a++不會修改a)。

  • 作為sizeof操作數(shù)的表達式可以具有除void或函數(shù)類型以外的任何類型。確實,這就是sizeof的重點。

在所有這些點上,功能都會有所不同。函數(shù)和一元運算符之間可能還存在其他差異,但是我認為這足以說明為什么sizeof不能成為函數(shù),即使有理由要這樣做。


查看完整回答
反對 回復(fù) 2019-10-08
?
暮色呼如

TA貢獻1853條經(jīng)驗 獲得超9個贊

它可以用作編譯時常量,僅當它是運算符而不是函數(shù)時才可能使用。例如:


union foo {

    int i;

    char c[sizeof(int)];

};

從語法上講,如果它不是運算符,則它必須是預(yù)處理器宏,因為函數(shù)不能將類型作為參數(shù)。這將是很難實現(xiàn)的宏,因為sizeof它既可以將類型也可以將變量作為參數(shù)。


查看完整回答
反對 回復(fù) 2019-10-08
?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

因為C標準是這樣說的,所以它是唯一的選擇。


該標準可能是正確的,因為sizeof采用類型和


通常,如果函數(shù)的域或共域(或兩者)包含比實數(shù)復(fù)雜得多的元素,則該函數(shù)稱為運算符。相反,如果函數(shù)的域和共域都不包含比實數(shù)更復(fù)雜的元素,則該函數(shù)可能會簡單地稱為函數(shù)。余弦等三角函數(shù)就是后一種情況的示例。


另外,當函數(shù)被使用得比通用F(x,y,z,...)形式頻繁地使用時,它們的符號表示法發(fā)展得更快或更容易時,所得的特殊形式也稱為運算符。示例包括中綴運算符(例如加號“ +”和除號“ /”)以及后綴運算符(例如階乘“!”)。這種用法與所涉及實體的復(fù)雜性無關(guān)。


查看完整回答
反對 回復(fù) 2019-10-08
?
翻過高山走不出你

TA貢獻1875條經(jīng)驗 獲得超3個贊

因為它不是功能。您可以這樣使用它:


int a;

printf("%d\n", sizeof a);

函數(shù)確實具有入口點,代碼等。函數(shù)要在運行時(或內(nèi)聯(lián))運行,sizeof必須在編譯時確定。


查看完整回答
反對 回復(fù) 2019-10-08
  • 4 回答
  • 0 關(guān)注
  • 737 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號