|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.12.2016, 14:27 | #1 | ||
Новичок
Джуниор
Регистрация: 20.12.2016
Сообщений: 2
|
Подскажите по printf, что и как делает эта функция
почему
Код:
Цитата:
Код:
Цитата:
это документировано, или я чего то не понимаю? |
||
21.12.2016, 14:37 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
а++ сначала берет переменную, потом вычисляет, поэтому когда все это в аргументе функции будет передано старое значение.
Кроме все прочего оба примера не равнозначны в принципе, поэтому результаты разные. У вас на одно а++ меньше в первом случае. |
21.12.2016, 15:46 | #3 | ||
Новичок
Джуниор
Регистрация: 20.12.2016
Сообщений: 2
|
Цитата:
я правильно понимаю, что если бы я написал Код:
Код:
Цитата:
Код:
|
||
21.12.2016, 15:57 | #4 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
Код:
|
|
21.12.2016, 16:05 | #5 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
|
21.12.2016, 16:22 | #6 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,529
|
1 пост)
Всё правильно он делает. Сначала отдаёт функции "a", а потом делает инкремент "a++". Во втором примере ты сначала выводишь один раз "a", а потом делаешь инкремент "a++". В первом варианте ты два раза подряд выводишь одно и то же значение, а потом делаешь инкремент. 2 пост) Если ты делаешь "printf("%d \n", a+100);", то выводишь значение "a + 100", но при этом НЕ ИЗМЕНЯЕШЬ значение "a". Оно остаётся прежним. "a=a+100; printf("%d \n", a);" Нет. Он бы так не понял. Ты же в первом примере не меняешь значение переменной. Такого присваивания там нету. Но всё равно добавляешь 100, и сумму выводишь на экран. Хотя значение переменной остаётся тем же. Твой вариант printf("%d \n", a++) компьютер понял бы как printf("%d \n", a); a++; Просто это типичная Си-шная запись выражений, чтоб вместо двух строчек писать одну.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что делает эта функция | nactyx | Помощь студентам | 3 | 05.06.2015 08:51 |
Обьясните пожалуста как и что делает эта программа и почему она это делает. | Dimka-novitsek | Общие вопросы C/C++ | 7 | 16.10.2013 12:02 |
Что делает эта строчка??? | marselik | Общие вопросы C/C++ | 2 | 02.11.2009 13:54 |
Что делает эта прога | StudentPolitech | Общие вопросы C/C++ | 1 | 25.03.2009 22:54 |
FindEgual-что делает эта функция? | stasig | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 14.12.2008 23:02 |