1樓:笑眯眯
C++ Primer:
if (( char ch = inBuf[ix] ) == '.' ) {
ch = '_';
inBuf[ix] = ch;
2樓:lihui
是可以宣告的,只是用法錯誤了,正確的應該是這樣的 :(); 這是GCC 的乙個擴充套件,術語叫:Statement-embedded expression (內嵌語句表示式),具體用法可參考:
3樓:
誰說不行呢?
if(int c = get())}
4樓:黃亮anthony
在命令式語言中,我們主要使用語句,表示式只是一種語法糖,它沒有必要過於強大。
我認為最原始的問題可能來自於我們可以在for/while/switch的小括號中宣告變數,但是不能在這些語句之外引入括號中宣告變數。
事實上這個問題我認為這個設計主要解決變數的作用域問題,也就是說變數的作用域應該大於表示式,才不違反直覺(估計最初只是為了編譯方便)。如a + (int a = 3) + a, 這個三個a表達什麼含義呢?如果中間的a只在括號內有作用,那其實沒有必要在表示式內宣告。
如果在整個表示式都有效,那麼第乙個a和最後乙個a是否表示不同的變數?
假定我們可以做到在表示式中宣告變數,事實上我們需要這樣的語法:
(int a, b in some express)
這確實c++不支援的,因為從C開始,這就是一種命令式語言,它主要是依靠修改
變數的值來解決問題。C++的表示式的能力有限,只不過它支援一種非常類似的東西:
這個與上面唯一不同的地方只有它是乙個語句,不是乙個表示式。
反過來,我們再看for/while/switch,很明顯,它們也是語句。
5樓:邱昊宇
簡單解釋:因為遊戲規則是這樣規定的,所以不行。(好吧,其實是 C++ 的語法規則)
詳細解釋:
C++ 語法規則中的語句分為很多類,問題中主要關注的兩類是:宣告語句(6.7)表示式語句(6.2)
宣告語句由宣告(7)構成,表示式語句由表示式(5)構成宣告沒有被括號括起來的形式的語法
我們印象中 x + 1 和 (x + 1) 等價的印象來自於表示式的語法(5.1.1)
一條語句只屬於乙個型別(不可能既是宣告語句,還是表示式語句)p.s. 文中括號中的數字表示 C++11 標準文件中的章節號。
修行為何不能上路?
修行之路有很多條,你想上哪條路?一心念佛號,也是修行之路。日行一善,也是修行之路。拜名師求正信也是修行之路。潛心於佛法典籍也是修行之路。做好本人的社會角色和家庭角色也是修行之路。 福馬林 如果要找一種修行方法的話,推薦看聖嚴寫的 無法之法 或者葛印卡的 內觀 然後參加禪七或者十日內觀禪修營。不過 內...
《知否》中墨蘭為何不能給梁晗做妾
風安 做了妾就是奴隸,把女兒賣成奴隸,盛巨集和他兒子在朝堂上要臉面不要?書裡說了,盛巨集若是有這個心思,以明蘭的姿色教養,做個側妃也是夠格的。墨蘭雖然不如明蘭漂亮,但也不會淪落到給梁府做妾的地步。 Venus 有一段賀家哥那個表妹.姨娘和明蘭的對手戲 明蘭問姨娘,表妹進門就是妾,妾就是奴,那妾的父母...
股東為何不能抽逃出資?
商務律師 張寅 要回答股東為何不能抽逃出資,有必要先了解中國 公司法 所採用的公司資本制度。目前,西方國家已經形成的有法定資本制度 授權資本制度和折衷資本制度三種。法定資本制度又稱為確定資本制,是指公司在設立時,必須在章程中對公司的資本總額作出明確規定,並須由股東全部認足,否則公司不能成立。授權資本...