#include <stdio.h>
volatile int i;
int main()
{
int c;
for (i = 0; i < 3; i++)
{
c = i &&& i;
printf("%d\n", c);
}
return 0;
}
La sortie du programme ci-dessus compilé en utilisant gcc
est
0
1
1
Avec l' option -Wall
ou -Waddress
, gcc
émet un avertissement:
warning: the address of ‘i’ will always evaluate as ‘true’ [-Waddress]
Comment est c
évalué dans le programme ci-dessus?
while (i &&& i <-- j) {}
.
i && (&i)
? Intéressant que je ne trouve pas un article en double sur SO.