Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2013, 16:47   #1
Lonely_wolf1333
 
Аватар для Lonely_wolf1333
 
Регистрация: 08.01.2013
Сообщений: 6
Печаль Использование функций (C++ Builder)

Хочу сделать так, чтобы программа выдала:
i j k
1 2 3
1 3 4

Код такой:
Код:
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop


#pragma argsused
void f (int i, int *j, int & k);
int main ( ) {
int i = 1, j = 2, k= 3;
cout << "i  j  k \n";
cout << i << '  '<< j << '  ' << k << '\n';
f(i, &j, k);
cout << i << '  '<< j << '  ' << k << '\n';
getch ();
return 0;
}
void f(int i, int *j, int &k) {
i ++; (*j)++; k++;}
Он мне выдает не понятно что... Подскажите пожалуйста, что не так...
Lonely_wolf1333 вне форума Ответить с цитированием
Старый 09.01.2013, 18:49   #2
Vacsus
 
Регистрация: 07.01.2013
Сообщений: 5
По умолчанию

cout << i << ' '<< j << ' ' << k << '\n';

замени на
cout << i << " "<< j << " " << k << '\n';

Не нужно в одиночный символ 2 пробела пихать.
Vacsus вне форума Ответить с цитированием
Старый 10.01.2013, 15:02   #3
Lonely_wolf1333
 
Аватар для Lonely_wolf1333
 
Регистрация: 08.01.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Vacsus Посмотреть сообщение
cout << i << ' '<< j << ' ' << k << '\n';

замени на
cout << i << " "<< j << " " << k << '\n';

Не нужно в одиночный символ 2 пробела пихать.
Спасибо большое!!! А подскажите пожалуйста, почему значение i не меняется?
Lonely_wolf1333 вне форума Ответить с цитированием
Старый 10.01.2013, 15:36   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Вот есть переменные i, j, k.
Функции в си принимают аргументы по значению. Поэтому, чтобы изменить переданный аргумент, его нужно передавать по адресу, а не значению. Переменная i передается по значению, поэтому ее изменение в функции никак не влияет на само значение i.

К ознакомлению:
http://darkraha.com/rus/cpp/cpp16.php
http://valera.asf.ru/cpp/book/c07.html
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 10.01.2013 в 15:39.
BDA вне форума Ответить с цитированием
Старый 10.01.2013, 16:28   #5
Lonely_wolf1333
 
Аватар для Lonely_wolf1333
 
Регистрация: 08.01.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Вот есть переменные i, j, k.
Функции в си принимают аргументы по значению. Поэтому, чтобы изменить переданный аргумент, его нужно передавать по адресу, а не значению. Переменная i передается по значению, поэтому ее изменение в функции никак не влияет на само значение i.

К ознакомлению:
http://darkraha.com/rus/cpp/cpp16.php
http://valera.asf.ru/cpp/book/c07.html
Большое спасибо вам=))
Lonely_wolf1333 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ в с++ baximaxik Помощь студентам 13 16.11.2012 14:14
Использование функций С++ ignat129 Помощь студентам 5 13.05.2012 16:15
Использование функций в Си (=Hello=) Общие вопросы C/C++ 46 11.11.2011 17:41
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
Использование функций prikolist Общие вопросы C/C++ 15 06.04.2009 18:42