Язык Си позволяет создавать выражения, которые не сразу и поймешь.
Знакомый принес с собеседования вот такую задачку:
Что выведет программа?
int x = 2; x += x+++++x; printf( "x=%u\r\n", x ); |
Ответ:
x = 10
[WpProQuiz 1]
Язык Си позволяет создавать выражения, которые не сразу и поймешь.
Знакомый принес с собеседования вот такую задачку:
Что выведет программа?
int x = 2; x += x+++++x; printf( "x=%u\r\n", x ); |
Ответ:
x = 10
[WpProQuiz 1]
X=10. check your qualification :)
Спасибо.
Посыпаю голову пеплом :)
А что выведет код:
int a = 1;
int *b = a;
int *c = a;
int d = (*b+1)/*c;
printf(«%i\n»);
/*ответ: ошибку после этого комментария*/
Нет, не 10;
такая запись не прокатит;
Либо 8, т.к. записать можно как: x += x++ + ++x;
либо словите lvalue……..
main.cpp: In function ‘int main()':
main.cpp:12:11: error: lvalue required as increment operand
x += x+++++x;
^