a = i ; равно ли `a` `i`?

#c

#c

Вопрос:

Какие значения в этом фрагменте кода имеют a и i соответственно и почему?

 int i = 1;
int a = i  ;
  

Означает ли a == 1 или a == 2 ?

Комментарии:

1. Вы можете ответить на первую часть вопроса, просто запустив программу

2. Это одна из тех вещей, которые лучше попробовать, а не спрашивать здесь. Это называется постфиксным оператором и происходит после присваивания. Так a == 1 и i == 2 .

3. Или даже путем размышления. Я удивлен, что кто-то с репутацией 4K спросил об этом.

4. усилия, требуемые при вводе вопроса, могли бы быть лучше использованы для ввода кода и тестирования

5. Попробуйте это: ideone.com/n0W5X

Ответ №1:

a==1 . И тогда, i==2

Было бы a==2 , если бы вы сделали a= i

Ответ №2:

A будет единицей. Это называется последующим приращением. Переменная i увеличивается только после использования. Обратное называется предварительным приращением.

Ответ №3:

a==1 i возвращает значение i , а затем увеличивает его. К вашему сведению, если бы у вас было i обратное, было бы верно, i было бы увеличено, а затем было бы возвращено значение.

Ответ №4:

 int i = 1;
  

i теперь имеет значение 1.

 int a = i  ;
  

a имеет значение i , которое 1 ( i возвращает 1 , затем увеличивает значение i на 1 ). i теперь увеличивается с 1 и становится 2 .

На данный момент, a == 1 , i == 2 .