2015-08-23 3 views
0

Я смотрел учебник онлайн и не понять, почему мы должны использовать это:инкремента переменной в Е()

printf("The value is 7: [ %d]\n",k++); 

Итак, это то, что у меня есть:

int k = 6; 
k++; 

printf("The value is 7: [ %d]\n",k); 

Выход:

The value is 7: [ 7] 

Теперь это то, что он сделал:

int k = 6; 
k++; 

printf("The value is 7: [ %d]\n",k++); 

Выход:

The value is 7: [ 7] 

Это один тоже напечатает 7:

int k = 6; 

printf("The value is 7: [ %d]\n",k++); 
printf("The value [%d]\n", k); 

Выход:

The value is 7: [ 6] 
The value [7] 

Мое замешательство было в чем важность увеличения в printf()?

+0

Кроме того, если вы пишете int k = 7; printf ("Значение 7: [% d] \ n", k ++); вы получите тот же результат! Это очень странно ... не так ли? –

+2

Онлайн-учебник просто не должен показывать вам kruft как это, не помещая там больших предупреждающих знаков, действительно, действительно хорошо объясняйте, что происходит * и * объясните, почему вы никогда не должны использовать такой код самостоятельно. –

+2

Это действительно противно обсуждать вопрос только потому, что плакат является новичком. Это неподдельный вопрос, который стоит задать, запутав учебник. –

ответ

4

Мое замешательство было в чем важность увеличения в printf?

Не имеет значения. Эти примеры всегда должны показывать только такие люди, как вы, как pre- (++ k) и postincrementing (k ++). Нет правила об увеличении переменных внутри printf, вам не нужно это делать, но это очень ценная операция, заслуживающая внимания.

++ k называется preincrementation. Сначала значение k будет увеличено, а затем использовано.
k ++ называется postincrementation. Значение k будет использовано сначала, а затем увеличится на 1.

0

Выражение k++ возвращает значение k до приращения, а по мере того, как побочный эффект будет увеличиваться.

Так этот код:

int k = 6; 
k++; 
printf("The value is 7: [ %d]\n",k++); 

Напечатает 7, но k будет иметь значение 8 после PRINTF линии.

0

Выражение k++ оценивает значение k. В качестве побочного эффекта увеличивается значение k.

При использовании:

int k = 6; 
k++; 
printf("The value is 7: [ %d]\n",k); 

printf напечатает 7. Значение k после printf по-прежнему 7.

При использовании:

int k = 6; 
printf("The value is 7: [ %d]\n",k++); 

printf напечатает 6. Значение k после printf является 7.

0

Правила:

1.При вы используете k++ это приращение к.

2. когда вы используете, например, int b = k ++; b будет 6 и k будет 7

  1. когда вы используете int b = ++ k; В и к будет 7.

так вот в

int k = 6; 
k++; 
printf("The value is 7: [ %d]\n",k); 
return 0; 
} 

так как первое правило к ++ ---> к будет 7 и Printf напечатает 7.

secod код:

int k = 6; 
k++; 
printf("The value is 7: [ %d]\n",k++); 
return 0; 
} 

первое правило: к будет 7.

это как второе правило: значение Пропустите Д.К. к Printf то к будет incrementso, если вы поставите printf("The value is 7: [ %d]\n",k); после этого Printf он будет печатать 8.

в третьем коде:

int k = 6; 
printf("The value is 7: [ %d]\n",k++); 
printf("The value [%d]\n", k); 

здесь первый PRINTF будет печатать 6, потому что k будет проходить к нему до приращения, а это 6, тогда k будет увеличиваться, а вторая printf будет печатать 7.

Смежные вопросы