#include<stdio.h> int main() { printf("%d",printf("%d %d",2,2) & printf("%d %d",2,2)); }
Вывод выглядит так: 2 2 2 2 3
2 2 2 2 3
Я не могу понять, почему вывод такой.Есть идеи?
printf возвращает количество напечатанных символов, поэтому вот объяснение:
printf
printf("%d",printf("%d %d",2,2) & printf("%d %d",2,2)); \_________/ \_________________/ | \_________________/ | | | | | prints "2 2" | prints "2 2" | and returns 3 | and returns 3 | | | computes 3 & 3 | (which equals 3) | prints "3"