1樓:匿名使用者
首先提醒一下你的#define寫錯啦
正題你定義的是#define add(x) (x)+(x)而不是你看看這有啥區別啊 就是add和(x)中間間開啦
你的是定義add(x)整體是(x)+(x)所以d=add(a+b)*c;
就是((a+b)+(a+b))*c就是80啦定義#define add (x) (x)+(x) 就是你要的結果哈
2樓:匿名使用者
你用的是巨集,而不是函式。所以它進行的是字元代換而不是運算。a+b的確會被執行,所以你是在執行d=add(10)*7; ,但這裡的問題是根據你的定義add(10)被換成了(10)+(10),所以整個式子變成了d=(10)+(10)*7=10+70=80。
而且你那明明就不是add而是double,仔細檢查一下你要執行什麼吧。
3樓:孟儂
因為#define定義的是字元常量,定義好了以後值就是不可以改變的啊!又因為d=add(a+b)*c;我除錯出來也是它啊!
c裡面用巨集解決add 之類的處理是可以的
4樓:毓山蘭
打錯了吧,應是 #define
遵循先替換再計算
(4+6)+(4+6)*7=80
5樓:
d=add(a+b)*c=(a+b)+(a+b)*c=80
6樓:匿名使用者
x用a+b代替,d=add(a+b)*c=(4+6)+(4+6)*7=80.
7樓:小飛俠飛得高
add(a+b)即add(4+6) 就是(10)+(10) d=add(a+b)*c 即d=(10)+(10)*c即d=10+10*7=80
各位大蝦,c語言問題,請教C語言的問題
1,窗體設計的話,你最好用mfc,你可以自己去查一下。是微軟的乙個框架。生成乙個窗體很複雜,有許多。但是也有一些現成的函式給你用。2,指標有很大的用處,他可以讓你直接操作記憶體,這一點的用處,當你編寫一些靠硬體的程式時,你就深有體會了。還有就是對陣列字串的操作,有了指標,就更容易,也更精確。函式本身...
幾個簡單的C語言問題 請教C語言的問題
確實是小菜,不過題太多。又沒懸賞。為你默哀一分鐘後離開!是很簡單,但是你這些都不會,你就要多練習,努力一點就回了。都是c語言教材上的例題,建議找本c語言教材翻翻,問題就解決了!直接求程式?建議你還是親自動手寫一下。請教c語言的問題 既然sum power n,k pow n,k sum power ...
C語言初學者請教各位大師
這個數優先順序問題,首先 i 和 j貌似是單目運算子吧,記不清了,反正是最高的那種。首先 i 會在這個表示式結束後,才會產生加1的效果,就是遇到第乙個分號結束後,i 才會加一,所以到執行 p i i 首先執行括號裡的 i 當這個表示式執行完畢,也就是把 p賦值成10後,i 才會加一再加一 變成7 下...