Кто-нибудь знает, почему y = 11? Это 21/12 = 1,75, но тем не менее она возвращает 11.Указатель Неверная возвращаемая стоимость
int i=3, j=5, *p = &i, *q = &j, *r;
int y = 7 **p/*q + 7;
Кто-нибудь знает, почему y = 11? Это 21/12 = 1,75, но тем не менее она возвращает 11.Указатель Неверная возвращаемая стоимость
int i=3, j=5, *p = &i, *q = &j, *r;
int y = 7 **p/*q + 7;
7 * *p/*q + 7
7 * (3)/(5) + 7 Substitution
21/5 + 7
4 + 7 Integer Division
11
Ничего себе, не знаю, как я мог это забыть. благодаря –
Порядок операций. 7 * 3/5 + 7 является 21/5 + 7. Так как вы используете Интс, это 4 + 7 = 11.
Приоритет операторов - с помощью скобок для обозначения порядка оценки:
int y = ((7 * *p)/*q) + 7;
7 * 3/5 = 4
4+ 7 = 11
Все операции выполняются в виде целого числа, а не как плавающий р операции.
Давайте это обособленно
7 * (*p)/(*q) + 7
7 * *&i/*&j + 7
7 * 3/ 5 + 7
21 / 5 + 7
4 + 7
11
его правильно, ваше выражение в:
(7* 3)/5 + 7
= 4 + 7
, который равен 11
Это код из моего школьного учебника :) –
@JesseStruyvelt - Я надеюсь, что бумага поглощает. Это единственное использование для этой книги как туалетной бумаги –