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

Написать функцию swap - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Почему нельзя подставлять переменные в выражения #if #else? http://www.cyberforum.ru/cpp-beginners/thread1130277.html
Почему код работает, не должен же, потому что выражение стоящее после #if вычисляется на этапе компиляции, переменные подставлять нельзя?? #include <stdio.h> #include <iostream> using namespace std; int a = 9; int main(void){ #if a>99
C++ В массиве все четные элементы заменить максимальным В одномерном массиве все четные элементы заменить максимальным и отсортировать элементы массива по возрастанию. http://www.cyberforum.ru/cpp-beginners/thread1130253.html
C++ Поменять местами минимальный и максимальный элемент в каждом столбце матрицы
Дано матрицу размера 5 x 10. Превратить матрицу, поменяв местами минимальный и максимальный элемент в каждом столбце.
Найти средние арифметические значения элементов каждой строки матрицы C++
Задать матрицу произвольным способом. Найти средние арифметические значения элементов каждой строки.
C++ Найти количество элементов превышающих среднее арифметическое всех элементов массива http://www.cyberforum.ru/cpp-beginners/thread1130247.html
Дано одномерный массив из 15 целых чисел. Найти количество элементов превышающих среднее арифметическое всех элементов массива.
C++ Cколько раз встречаются числа с 4 одинаковыми цифрами Здравствуйте.Мне нужна помощь. Для всех шестизначных натуральных чисел посчитать сколько раз встречаются числа, в записи которых присутсвует 4 одинаковые цифры. Вот что получилось. #include <iostream> #include <math.h> using namespace std; void main (void) подробнее

Показать сообщение отдельно
castaway
Эксперт С++
4848 / 2987 / 368
Регистрация: 10.11.2010
Сообщений: 11,028
Записей в блоге: 10
Завершенные тесты: 1
15.03.2015, 16:01     Написать функцию swap
Интересный момент...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    int i = 1;
    int a[] = { 3, 5 };
 
    a[0] ^= a[1] ^= a[0] ^= a[1];
 
    i = a[i++];
 
    printf( "%d\n", a[0] );
    printf( "%d\n", a[1] );
    return 0;
}
Компилятор GCC 4.9.2 с опциями -std=c++03 и -std=c++11 выдаёт предупреждение:
Bash
1
2
3
4
main.cpp: In function 'int main()':
main.cpp:9:12: warning: operation on 'i' may be undefined [-Wsequence-point]
  i = a[i++];
            ^
только на 10-ю строку.

Если компилировать этот же код как код языка Си этим же компилятором, то это же предупреждение будет распространяться на две строки - 8 и 10.

Цитата Сообщение от Tulosba Посмотреть сообщение
MrGluck, похоже ты не учел отсутствие точек следования.
раз, два.
Первая ссылка ведёт на вопрос по языку Си, вторая на вопрос по С++, но там какая-то каша в ответах в которую смешали Си и С++.

Лично для меня этот вопрос остаётся открытым.
 
Текущее время: 20:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru