Re: [閒聊] 又一個活生生的例子
※ 引述《johnny198681.bbs@ptt.cc (傑喬)》之銘言:
> 請問一下....
> ++a,a++不一定等於a+1....
> 是不是因為要看使用時機還是是要看環境....
關鍵字:side effect, sequence point
用這個去課本或網路上查一查應該就會知道了。
> 又還是2者都有關西??....
> 如果拿來PRINT ++a是先加在讀值,對嗎?....
> 而a++是先讀值再加,對嗎?....
對,但是跟本主題關聯不大。
> : 執行結果:
> : .. 考慮: i的初值為3,
> : 表達式(i++*++i+i--*--i)=?
> 運算為3*5+5*3=30....
> 結果為30對嗎?....
> 可是為啥我編譯完答案是25....
沒有一個數字會是正確結果,
標準沒有指定同一個編譯器這樣寫會有什麼固定的行為,
也沒定義所有編譯器都應該要有怎樣的行為。
> 可是那要怎麼測試學生是否有觀念呢?....
> 要不必出這麼刁的題目還是說有更好的辦法?....
這是教育者的工作 (你是初學者更不用煩惱它),
其實我們可以不去管它怎樣設計比較好,
但是亂七八糟惡搞的題目還是可以批,
當然最好是在已經確定出題者自己也搞不清楚的前提下。
> 對不起小的初學C,請問解決問題的時候會需要用到什麼阿?....
實務上用到一些「概念工具」,
就是大家常說的「資料結構」和「演算法」裡的東西。
不過更基礎的還是「邏輯性思考」,
一般來說基礎程式設計的課程應該順便訓練這個;
最基礎則是「積木」,
也就是語言本身的各種 facilities,
就像拿積木給小孩子堆,
給點小示範 (甚至是根本不示範) 就讓他們自由發揮一樣,
學習上最好也是這樣,
不能光是靠模仿;
在知道怎樣做比較好之前,
先要學習如何只靠自己的想法來達成目的。
> 請問一下什麼是胃定義的寫法阿@@?我的問題真多@@...
標準規格書上明確記載著行為或結果未定義的事情,
簡稱為「未定義」,
絕對不是「標準規格書沒寫」的意思,
有些人會搞不清楚,
所以這部分特別跟你講一下。
> 最後一問在回到最前面的問題....
> 要怎麼才知到老師出的題目是不是鳥題目?....
> 好題目的樣子應該市長什麼樣的阿?....
題目的「好」或許不容易判別,
而且會因每人想法背景不同而有不同評價,
但是「超爛的題目」對於熟悉該語言的人而言,
其實非常容易識別出來,
而且不會有什麼爭議,
這類題目通常是「出題者想刁學生反而顯露出自己的無知」等等的形式,
因為你是初學者,
所以我沒辦法用很技術面的說法來回答,
上面那個引號括起來的部分是我所能想到最白話的回答了,
針對現在這個討論串的內容而言。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.252 > ╰─╮
╚╦═╦╝ ╰ * From:61-230-220-92.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎
討論串 (同標題文章)