看板 Programming 關於我們 聯絡資訊
1 int main () { char str [80]; int i; printf ("Enter your family name: "); scanf ("%s",str); printf ("Enter your age: "); scanf ("%d",&i); 為什麼讀取的資料是char的時候 寫成str 而非 &str 為什麼讀取的資料是int的時候 就要 &i 不論讀取char 或是 int 應該都從記憶體的地址去取值才對 既然如此 應該兩個都需要&才對吧? 2 #define square(x) x * x main() { int z = 3; printf("%d\n", square(z + 1)); } 為什麼印出來的結果是 7 而不是 16? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 69.205.68.125
chchwy:pass by value,你寫過函數就知道140.115.158.103 02/12 17:25
COLDTURNIP:#define square(x) (x * x) 試試就知 118.166.78.221 02/12 18:02
james732:第一個問題:str是char array而不是char 1.174.129.36 02/12 18:02
james732:你可以想想改成 char str; 的差別是什麼 1.174.129.36 02/12 18:04
james732:2相當於printf("%d\n", 3+1 * 3+1); 1.174.129.36 02/12 18:06
james732:先乘除後加減才會冒出7 1.174.129.36 02/12 18:07
james732:改成 #define square(x) (x) * (x) 即可 1.174.129.36 02/12 18:07
sean72:感謝 69.205.68.125 02/13 06:24