Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / указатели? / 7 сообщений из 7, страница 1 из 1
24.11.2015, 00:07
    #39111560
Alex_Ka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
указатели?
Сорри за детский вопрос но плс. помогите разобраться:
Есть массив(заполненный) и есть 2 переменные(double), надо передать эти переменные(указатели) и массив в функцию,
чтобы функция с ними что-то сделала и НОВЫЕ значения остались бы в переменных, как это сделать?
Желательно чтобы в функции не объявлять новых переменных.

я это как-то так вижу:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
double ARR[500];
double sum_1 = 0.0;
double sum_2 = 0.0;
double *p_sum_1 = &sum_1;
double *p_sum_2 = &sum_2;

void use_ptr_func1(double *arr[],double *pda, double *pdb)
{
  pda = 101.777731 + arr[0];
  pdb = 7007.555558 * arr[1];
  std::cout << "use_ptr_func1" << std::endl;
}

int main(int argc, char* argv[])
{
	use_ptr_func1(&ARR, &sum_1, &sum_2);
	std::cout << "sum_1= " << sum_1 << std::endl;
	std::cout << "sum_2= " << sum_2 << std::endl;
}



и еще, посоветуйте хорошую желательно свежую книжку по C++ с основами.
...
Рейтинг: 0 / 0
24.11.2015, 00:12
    #39111564
BagaBaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
указатели?
Alex_Ka, у вас _очень_ странный код.

void use_ptr_func1(double *arr[],double *pda, double *pdb)
{
pda = 101.777731 + arr[0];
^^^

Вот здесь вы В УКАЗАТЕЛЬ пишете сумму какого-то числи и нулевого элемента массива. Вы точно ЭТО хотите? Компилятор не ругается?
Може, всё-таки имелось в виду вот это
pda = 101.777731 + arr[0];
?
Правда, зачем вам в этом примере указатели? Используйте ссылки.
...
Рейтинг: 0 / 0
24.11.2015, 00:14
    #39111566
BagaBaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
указатели?
"звёздочка" оператора разыменования "не пропечаталась".

*pda = 101.777731 + arr[0];
...
Рейтинг: 0 / 0
24.11.2015, 02:15
    #39111582
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
указатели?
Alex_Ka,
не вникая сильно в смысл того что вы делаете сигнатура и вызов должны быть следующими

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
double ARR[500];
double sum_1 = 0.0;
double sum_2 = 0.0;

void use_ptr_func1(double* arr, double* pda, double* pdb)
{
	*pda = 101.777731 + arr[0];
	*pdb = 7007.555558 * arr[1];
	std::cout << "use_ptr_func1" << std::endl;
}

int main(int argc, char* argv[])
{
	use_ptr_func1(ARR, &sum_1, &sum_2);
	std::cout << "sum_1= " << sum_1 << std::endl;
	std::cout << "sum_2= " << sum_2 << std::endl;
}
...
Рейтинг: 0 / 0
24.11.2015, 07:32
    #39111611
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
указатели?
[

я это как-то так вижу:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
double ARR[500];
double sum_1 = 0.0;
double sum_2 = 0.0;
double *p_sum_1 = &sum_1;
double *p_sum_2 = &sum_2;

void use_ptr_func1(double *arr[],double *pda, double *pdb)
{
  pda = 101.777731 + arr[0];
  pdb = 7007.555558 * arr[1];
  std::cout << "use_ptr_func1" << std::endl;
}

int main(int argc, char* argv[])
{
	use_ptr_func1(&ARR, &sum_1, &sum_2);
	std::cout << "sum_1= " << sum_1 << std::endl;
	std::cout << "sum_2= " << sum_2 << std::endl;
}



да, вполне допустимо.

еще можно

void func1(double &da, double &db)
...

книга Дейтел ,
поищи по форуму 200 раз обсуждали
...
Рейтинг: 0 / 0
24.11.2015, 08:56
    #39111649
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
указатели?
Тут что с чем складывается?

Код: plaintext
1.
2.
3.
4.
5.
double *arr[]

101.777731 + arr[0]

7007.555558 * arr[1]
...
Рейтинг: 0 / 0
24.11.2015, 10:14
    #39111753
BagaBaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
указатели?
mcureenab,
число с плавающей точкой и адрес. Ты же объявил массив адресов. Только не инициализирован.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / указатели? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]