作者sean72 (.)
站內Programming
標題[問題] 兩個C的問題請教 scanf() & Macro
時間Sat Feb 12 16:24:27 2011
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
1F:推 chchwy:pass by value,你寫過函數就知道140.115.158.103 02/12 17:25
2F:推 COLDTURNIP:#define square(x) (x * x) 試試就知 118.166.78.221 02/12 18:02
3F:→ james732:第一個問題:str是char array而不是char 1.174.129.36 02/12 18:02
4F:→ james732:你可以想想改成 char str; 的差別是什麼 1.174.129.36 02/12 18:04
5F:→ james732:2相當於printf("%d\n", 3+1 * 3+1); 1.174.129.36 02/12 18:06
6F:→ james732:先乘除後加減才會冒出7 1.174.129.36 02/12 18:07
7F:→ james732:改成 #define square(x) (x) * (x) 即可 1.174.129.36 02/12 18:07
8F:→ sean72:感謝 69.205.68.125 02/13 06:24