Форум программистов, компьютерный форум CyberForum.ru

Разница между префиксной и постфиксной формой записи счетчика цикла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти количество элементов массива, равных первому элементу http://www.cyberforum.ru/cpp-beginners/thread122150.html
ПОМОГИТЕ ПОЖАЛУЙСТА!!!! 1)Составить программу,которая находит количество элементов,равных первому элементу,и количество элементов,равных последнему,в мвссивах X(n) и Y(M).вычислить количество элементов(оформить в виде таблицы)!!!! 2,Получить квадратную матрицу порядка n. 1 2 3 ... n n n-1 n-3 1 ...
C++ Константы и выражения 1.Записать каждое десятичное число в виде целой десятичной, восьмеричной и шестнадцатеричной константы: 126 10 219 77 2.Записать каждое десятичное число в виде вещественной константы в форме с фиксированной точкой и экспоненциальной форме: 0,4335 4,3*10-2 778 0,005*102 3.еменная объявлена как float S. Определить значение результата каждой операции и значение переменной S... http://www.cyberforum.ru/cpp-beginners/thread122142.html
Выберите названия, содержащие хотя бы одно из заданных ключевых слов. C++
Помогите плиз решить задачу на С++ Заданный набор ключевых слов, а также текст, в котором хранится длинный список названий книг и научных работ. Выберите названия, содержащие хотя бы одно из заданных ключевых слов.
записать каждое десятичное C++
1. Записать каждое десятичное число в виде целой десятичной, восьмеричной и шестнадцатеричной константы: 55 219 143 79 2. Записать каждое десятичное число в виде вещественной константы в форме с фиксированной точкой и экспоненциальной форме: 99*10-1 1340 9,865 10000 3. Переменная объявлена как int S. Определить значение результата каждой операции и значение переменной S после...
C++ Как сделать, чтоб после появления нового символа, предыдущий менялся на пробел http://www.cyberforum.ru/cpp-beginners/thread122114.html
Есть цикл вот такой: int main() { string b,c; b = "+"; c = " "; int a = 0; for(int i = 0;i<=100000000;i++) {
C++ Среди всех n-значных чисел указать те, сумма цифр которых равна данному числу k. Среди всех n-значных чисел указать те, сумма цифр которых равна данному числу k. Помогите решить :) подробнее

Показать сообщение отдельно
Seishin
12 / 12 / 2
Регистрация: 15.04.2010
Сообщений: 31
27.04.2010, 12:25     Разница между префиксной и постфиксной формой записи счетчика цикла
В любом случае инкрементирование и все действия в последней части конструкции if( ; ; (вот эти) ) выполняется только после прохода тела цикла. При этом, если там выполняются какие-нить действия связанные со счетчиком, то при

C++
1
2
3
4
5
6
7
char m[3] = {10, 20, 30};   
char lc = -1;
for( int i = 0; i < 3; lc = m[i], i++ )
{}
 
for( int i = 0; i < 3;  lc = m[i], ++i )
{}
получим на второй итерации lc == 10 в обоих случаях и i == 1...

При
C++
1
2
3
4
5
for( int i = 0; i < 3; i++, lc = m[i] )
{}
 
for( int i = 0; i < 3; ++i, lc = m[i])
{}
получим на второй итерации lc == 20 в обоих случаях и i == 1, тут надо быть осторожным, ибо после последней итерации и до проверки выполнения i<3, i == 3 и m[3] == Хз, т.е. можно залезть за границы массива..

А постфикс и префикс имеют смысл только в случае
C++
1
2
3
4
5
for( int i = 0; i < 3; lc = m[i++] )
{}
 
for( int i = 0; i < 3;  lc = m[++i])
{}
Добавлено через 8 минут
taras atavin,
kazak,
(( может от компилятора зависит

Объясните нубу, в обоих случаях

Assembler
1
2
3
4
5
6
7
8
00411AEE C7 45 E0 00 00 00 00 mov         dword ptr [ebp-20h],0 
00411AF5 EB 09            jmp         00411B00 
00411AF7 8B 45 E0         mov         eax,dword ptr [ebp-20h] 
00411AFA 83 C0 01         add         eax,1 
00411AFD 89 45 E0         mov         dword ptr [ebp-20h],eax 
00411B00 83 7D E0 03      cmp         dword ptr [ebp-20h],3 
00411B04 7D 02            jge         00411B08 
00411B06 EB EF            jmp         00411AF7
 
Текущее время: 23:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru