С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/50: Рейтинг темы: голосов - 50, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9

невозможно преобразовать параметр 1 из "int" в "int *&"

26.07.2013, 11:18. Показов 10861. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
 
void Func1(int *n)
{
    cout << *n << " = " << *n << endl;
}
 
void Func2(int &n)
{
    cout << &n << " = " << n << endl;
}
 
void Func3(int *&n)
{
    cout << &n << " = " << n << endl;
}
 
 
int main()
{
    int n;
 
    Func1(&n);
    Func2(n);
    Func3(n);  // Func3: невозможно преобразовать параметр 1 из "int" в "int *&"
    
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.07.2013, 11:18
Ответы с готовыми решениями:

error C2664: Display: невозможно преобразовать параметр 1 из 'int [5]' в 'int"
Добрый вечер! Прошу помочь, так как сам только начал изучать СПП (поэтому отнеситесь с пониманием)). #include &lt;stdio.h&gt; ...

error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int'
Помогите поправить код, а то выдаёт ошибки #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; void...

error C2664: itoa: невозможно преобразовать параметр 1 из 'int *' в 'int' + запись в файл
Подскажите пожалуйста как быть... в конструктор приходит *int и мне нужно создать файл, с именем таким же, что и значение, которое приходит...

38
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.07.2013, 11:24
Видимо Func3(&n);
0
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9
26.07.2013, 11:32  [ТС]
PHP
1
Func3(&n);  // Func3: невозможно преобразовать параметр 1 из "int *" в "int *&"
0
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
26.07.2013, 11:53
cite, испытываешь передачу переменной в функцию?

Добавлено через 3 минуты
14 строчка, так нельзя делать, передаешь или ссылку или указатель, но ни как не одновременно одно и тоже.

Добавлено через 5 минут
т.е.

void Func3(int *n)

или

void Func3(int &n)

но НЕ

void Func3(int *&n)
0
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9
26.07.2013, 11:56  [ТС]
Цитата Сообщение от VLK Посмотреть сообщение
cite, испытываешь передачу переменной в функцию?
функции изучаю и немного тренируюсь)

видел программу и там функция принимает ссылку на указатель
только не понимаю как это
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
26.07.2013, 12:01
cсылку на указатель передавать можно, это необходимо что бы внутри можно было изменить этот входной указатель, только скорее всего надо писать вот так
C++
1
&*а
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
26.07.2013, 12:01
Цитата Сообщение от VLK Посмотреть сообщение
14 строчка, так нельзя делать, передаешь или ссылку или указатель, но ни как не одновременно одно и тоже.
Чем тебе не понравилась ссылка на указатель?
___
Для Func3 нужен объект ссылку на который будем передавать.
C++
1
2
int *pn = &n;
Func3(pn);
1
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
26.07.2013, 12:02
На, держи в подарок, только вчера себе сделал, что то вроде памятки:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream> 
 
#define rus setlocale(LC_ALL,"")
#define pause system("pause");
 
 
void fun(int rhs)
{
/* Переданное значение является копией var имеет другой адрес */
std::cout << "rhs: " << rhs << " &rhs: " << &rhs << "\n\n";
}
 
void link(int &rhs)
{
/* Переданное значение является ссылкой на var, любые изменения rhs изменят и var
rhs и var имеют один и тот же адрес в ОП */
std::cout << "rhs: " << rhs << " &rhs: " << &rhs << "\n\n";
}
 
void ptr(int *rhs)
{
/* Переданная из функции main ссылка превращается в указатель,
в указатели хранится адрес на var, любое изменение *rhs изменит и var */
std::cout << "rhs: " << rhs << " &rhs: " << &rhs << " *rhs: " << *rhs << "\n\n";
}
 
 
 
int main()
{
rus;
 
int var = 1;
 
std::cout << "В функции main, значение и адрес: \n";
std::cout << "var: " << var << " &var: " << &var << "\n\n";
 
std::cout << "Передаем в функцию: fun(int rhs) - fun(var)\n"; 
fun(var);
/* передача осуществляется только в таком виде, т.е. 
перед var не получится поставить * или & */
 
std::cout << "Передаем в функцию по ссылке: link(int &rhs) - link(var)\n";
link(var);
/* передача осуществляется только в таком виде, т.е. 
перед var не получится поставить * или & */
 
std::cout << "Передаем в функцию по ссылке: ptr(int *rhs) - ptr(&var)\n";
ptr(&var);
/* передача осуществляется только в таком виде, т.е. 
перед var должен обязательно стоять &, во всех других случаях - ошибка */
 
pause;
return 0;
}
1
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
26.07.2013, 12:05
пример
C++
1
2
3
4
5
6
7
8
9
10
void CreateArray(int &*p, int n)
{
p = new int[n];
}
 
int main()
{
int * a;
CreateArray(a, 5);
}
Добавлено через 1 минуту
и это кстати
C++
1
void Func3(int *&n)
указатель на ссылку а не ссылка на указатель
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
26.07.2013, 12:15
Цитата Сообщение от aLarman Посмотреть сообщение
указатель на ссылку а не ссылка на указатель
Нет, именно ссылка на указатель. Пруф
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
26.07.2013, 12:18
aLarman, это как раз ссылка на указатель. Указателя на ссылку небывает.
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
26.07.2013, 12:18
А указатель на ссылку - вообще недопустимый тип данных.
0
26.07.2013, 12:22

Не по теме:

что то я теряю сноровку хД это void Func3(int *&n) ссылка на указатель

0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
26.07.2013, 12:24
aLarman,
C++
1
2
3
4
int & * ppp;
//( int & ) * ppp получается указатель на тип int&, то есть на ссылку
int * & ppp;
//( int * ) & ppp получается ссылка на тип int*, то есть на указатель
1
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9
26.07.2013, 12:32  [ТС]
спасибо сейчас повнимательнее почитаю что вы написали и постараюсь все это понять.
ссылки и указатели немного знаю, а вот ссылка на указатель это уже сложная для меня тема
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
26.07.2013, 12:38
Цитата Сообщение от cite Посмотреть сообщение
а вот ссылка на указатель это уже сложная для меня тема
Ничего сложного. Есть указатель, есть ссылка на объект. А ссылка на указатель - это обычная ссылка, которая ссылается на объект, являющийся указателем.
1
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
26.07.2013, 12:40
Цитата Сообщение от cite Посмотреть сообщение
ссылки и указатели немного знаю

На вот тебе еще, что еще лучше знал:

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream> 
 
#define rus setlocale(LC_ALL,"")
#define pause system("pause");
 
 
int main()
{
rus;
 
/* Переменная состоит из двух вещей, адрес в ОП и значение хранящиеся по эту адресу, 
например: значение 2, хранящиеся по адресу 50000 */
 
int variable = 2;
std::cout << "********************\n";
std::cout << "Переменная, variable = 2\n";
std::cout << "Переменная, обращение через variable: " << variable << "\n - показывает значение хранящиеся в этой переменной\n";
std::cout << "Переменная, обращение через &variable: " << &variable << "\n - показывает адрес переменной в ОП\n\n";
 
int &link = variable;
std::cout << "********************\n";
std::cout << "Ссылка link, является ссылкой на переменную variable которая фигурировала ранее\n";
std::cout << "Ссылка, обращение через link: " <<  link << "\n - показывает значение переменной (variable), на которую ссылается данная ссылка\n";
std::cout << "Ссылка, обращение через &link: " << &link << "\n - показывает адрес переменной (variable), на которую ссылается данная ссылка\n\n";
 
/* В отличии от переменной указатель состоит из трех вещей, первая, адрес в ОП, 
в котором хранится НЕ значение, а другой адрес в ОП, в котором хранится значение, 
например: указатель pointer, указывает на адрес в ОП 60000, по которому хранится 
другой адрес - 70000, в котором непосредственно хранится значение 3,
т.е. 3 хранится по адресу 70000, а по адресу 60000 хранится адрес 70000 */
 
int *pointer = new int(3);
std::cout << "********************\n";
std::cout << "Указатель, pointer = 3\n";
std::cout << "Указатель, обращение через pointer: " <<  pointer << "\n - показывает адрес хранящийся в указателе\n";
std::cout << "Указатель, обращение через &pointer: " << &pointer << "\n - показывает адрес самого указателя\n";
std::cout << "Переменная, обращение через *pointer: " << *pointer << "\n - показывает значение хранящиеся в указателе\n\n";
 
/* PS конечно многие скажут! как?! еще есть имя (переменной, указателя ссылки) 
а так же тип хранимых данных (int, double, char), 
ну есть и есть, они в данном примере не нужны */
 
pause;
return 0;
}
1
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
26.07.2013, 12:46
VLK, я вот прочитал, но нихрена не понял ^_^ Некоторые фразы двусмысленны...
0
 Аватар для VLK
198 / 170 / 19
Регистрация: 05.05.2013
Сообщений: 1,236
26.07.2013, 12:55
Цитата Сообщение от nonedark2008 Посмотреть сообщение
VLK, я вот прочитал, но нихрена не понял ^_^ Некоторые фразы двусмысленны...
Ну как можно не понять то, что ты знаешь

Добавлено через 1 минуту
А вообще скажи что именно не так, я поправлю текст, моя цель - что бы каждый мог с первого раза понять то, что я написал без вопросов.
0
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 9
26.07.2013, 13:06  [ТС]
VLK, как узнать адрес в памяти где находится сама ссылка? это из вашей программы

C++
1
2
3
int &link =  variable;
std::cout << "link = " << link << std::endl;
std::cout << "&link = " << &link << std::endl; // тут будет выведен адрес переменной variable
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.07.2013, 13:06
Помогаю со студенческими работами здесь

Ошибка: невозможно преобразовать параметр 4 из 'int' в 'int []'
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; void Your_array (int n, int m, int x); void Very_difficult_task (int n, int m, int x, int...

Невозможно преобразовать параметр 1 из 'int [9]' в 'int'
Что не так в коде? #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; const int MAX = 9; int maxint(int); int main() ...

невозможно преобразовать параметр 3 из 'int [8][5]' в 'int **'
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; void Your_array (int n, int m, int **x); using namespace std; void main () { ...

Невозможно преобразовать параметр из int в const char
Приветствую, помогите пожалуйста исправить следующую ошибку: printf: невозможно преобразовать параметр 1 из &quot;int&quot; в &quot;const...

Исправить ошибку C2664: fcvt: невозможно преобразовать параметр из "int" в "int *"
ПИшу програму перевод дробового числа с указанием количесв цифр после точки , с инт в чар !!!!Но выбивает ошибку !!! ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru