我只是經歷了一些在訪談中經常被問到的代碼。我想出了一些問題,如果有人能幫我解決這個問題?使用#define定義的數字的正方形
我對這個現在完全糊塗了,
#include <stdio.h>
#include <conio.h>
#define square(x) x*x
main()
{
int i, j;
i = 4/square(4);
j = 64/square(4);
printf("\n %d", i);
printf("\n %d", j);
printf("\n %d", square(4));
getch();
}
輸出是:
4
64
16
我很納悶,爲什麼square(4)
返回1,當我分吧?我的意思是,當我對它進行分割時,如何獲得值4和64,但直接使用時,我得到 !!?
只要注意#define square(x)x * x是一個clasic C baddy。嘗試使用方形(x ++)循環; – Jaydee 2010-09-15 15:33:50
如果你真的想迷惑自己,而且還沒有閱讀任何答案,請嘗試用'square(3 + 1)'替換'square(4)'。 – JeremyP 2010-09-15 15:40:55
這是一個簡單的優先問題。 – 2010-10-08 21:42:46