Ich habe gerade einen bestimmten Code durchgelesen, der häufig in Interviews gefragt wird. Ich habe bestimmte Fragen gestellt, ob mir jemand dabei helfen kann?Das Quadrat einer Nummer wird definiert mit #define
Ich bin total verwirrt auf diese jetzt,
#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();
}
Die Ausgabe lautet:
4
64
16
Ich frage mich, warum hat square(4)
Rückkehr 1, wenn ich es geteilt? Ich meine, wie kann ich den Wert 4 und 64 bekommen, wenn ich es teile, aber wenn direkt verwendet bekomme ich !!?
Nur um zu bemerken, dass #define square (x) x * x ist eine klassische C bady. Probieren Sie eine Schleife mit Quadrat (x ++); – Jaydee
Wenn du dich wirklich verwirren willst und noch keine der Antworten gelesen hast, versuche, 'square (4)' überall mit 'square (3 + 1)' zu ersetzen. – JeremyP
Dies war ein einfaches Präzedenzproblem. –