Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
1

Функция меняющая местами адреса

27.11.2015, 19:11. Показов 1329. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В функции поменял местами, но ничего не изменилось.

C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    int a[2] = { 1, 2 };
    int* b=a;
    lol((b + 0) , (b + 1));
    cout << *b << endl;  // Тут должно быть "2" 
}
void lol(int*a, int*b)
{
    a = b;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2015, 19:11
Ответы с готовыми решениями:

Функция,меняющая 1и 2 элемент местами
Уважаемые программисты,помогите написать программу, в которой функция меняет местами 1 и 2 ...

Функция, рекурсивно меняющая местами элементы списка
Добрый день. Есть задача: составиться функцию: void reverse(Node* header); которая рекурсивно...

Функция меняющая местами значения двух чисел
Добрый день помогите пожалуйста. Даны вещественные числа a, b. Составить программу, содержащую...

Функция меняющая местами 2 переменные на выбор пользователя
есть 7 переменных функцию которая меняет местами 2 переменные на выбор пользователя с помощью...

7
103 / 82 / 78
Регистрация: 11.05.2015
Сообщений: 201
27.11.2015, 19:19 2
C++
1
2
3
4
void lol(int* a, int* b)
{
    *a = *b;
}
0
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
27.11.2015, 19:21  [ТС] 3
Это меняется просто значение, мне надо поменять адреса
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
27.11.2015, 19:34 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
void lol(int*& a, int*& b)
{
    std::swap(a, b);
}
int main()
{
    int a[2] = {1, 2};
 
    int* b = a;
    int* c = b + 1;
 
    lol( b, c );
 
    cout << *b << endl;  // Тут должно быть "2" 
}
Почему (b+0) нельзя написали тут Ошибка при использовании перегруженного оператора вывода в поток: no match for 'operator<<'
0
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
27.11.2015, 19:41  [ТС] 5
А почему так присвоить адрес от другой переменной нельзя
a=b;?
0
3 / 3 / 0
Регистрация: 20.11.2015
Сообщений: 25
27.11.2015, 20:57 6
может быть a==b;
0
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
27.11.2015, 21:07  [ТС] 7
Это вообще сравнение. Я говорю почему один указатель не присваивается другому.
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    int a[2] = { 1, 2 };
    int* b=a;
    lol((b + 0) , (b + 1));
    cout << *b << endl;  // Тут должно быть "2" 
}
void lol(int*a, int*b)
{
    a = b;// Тут
}
0
7787 / 6555 / 2983
Регистрация: 14.04.2014
Сообщений: 28,633
27.11.2015, 21:57 8
Тебе же показали, что нужна ссылка на указатель, иначе присваивание только внутри функции действует.
0
27.11.2015, 21:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2015, 21:57
Помогаю со студенческими работами здесь

Функция меняющая местами первый и последний столбцы матрицы
Создать функцию,которая меняет местами первый и последний столб квадратной матрицы и находит сумму...

Функция меняющая местами два значения через указатели
Функция должна поменять местами значения через указатели. Программа запускается, но не работает...

Функция суммирующая значения своих аргументов и меняющая их местами
Определите функции, которые суммируют значения своих аргументов Внутри функции main объявите две...

Функция,меняющая местами первый и последний элементы массива
Напишите функцию меняющую местами первый и последний элементы массива. Можете помочь?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru