作者terranhardy (2-D)
看板C_and_CPP
標題[問題] #define 使用的問題
時間Fri Mar 27 01:17:23 2009
#include<stdio.h>
#define f(x)(x*x+2*x+9)
void main(){
int i=2;
printf("%d, %d \n", f(i), f(i+1));
}
請問為什麼f(i+1)跑出來是19呢? 代了很多變數都覺得很奇怪,
找了相關文章只知道避免這種情況發生是要在x變數再加上括號,
但還是不清楚19是怎麼被運算出來的? 麻煩大家幫忙解釋一下,謝謝了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.224.13.136
推 nedbob:i+1*i+1+2*i+1+9 2+1*2+1+2*2+1+9=19 03/27 01:19
→ terranhardy:真是清楚,謝謝你了 03/27 02:07
推 sdyy:x=>(x) 就對了 03/27 13:01