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

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

如何理解C中同時聲明多變量的機制?

如何理解C中同時聲明多變量的機制?

冉冉說 2019-04-16 20:27:23
為了理解該機制,我做了實驗:intmain(void){intd=3;inta=1,b=2,*c=&d;(int*)e=&a,f=&b;return0;}編譯成果返回c.c:Infunction‘main’:c.c:4:11:error:‘e’undeclared(firstuseinthisfunction)(int*)e=&a,f=&b;^c.c:4:11:note:eachundeclaredidentifierisreportedonlyonceforeachfunctionitappearsinc.c:4:19:error:‘f’undeclared(firstuseinthisfunction)(int*)e=&a,f=&b;(int*)e=&a,f=&b;為什么行不通?
查看完整描述

2 回答

?
尚方寶劍之說

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

Cmultiplesinglelinedeclarations說明了聲明多變量的機制。
如果要聲明比較特殊的類型時,比如指向int類型的指針,則應該要用到「聲明符」(declarator),而不是靠原本的類型前綴。
比如同時聲明多個指向int的指針時,則應該寫為int*a,*b,*c;而int*a,b,c只會聲明指向int類型的指針a,其它變量本身都屬于int類型。
當然,用typedef也可以:
typedefint*iptr;
iptrx,y,z;
(int*)e=&a,f=&b;之所以行不通,因為(int*)實際上是在聲明返回int類型的函數(shù)指針(大概?)。
                            
查看完整回答
反對 回復 2019-04-16
?
倚天杖

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

(int*)e=&a,f=&b;
其實我也不是很清楚,不過根據(jù)錯誤返回信息,可以看到,(int*)其實被解析成了強制類型轉(zhuǎn)換(本來就是這么著吧),所以錯誤信息是e未定義,然后整體是一個逗號表達式。。
                            
查看完整回答
反對 回復 2019-04-16
  • 2 回答
  • 0 關注
  • 939 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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