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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2011, 00:37   #11
L6go1as
Форумчанин
 
Регистрация: 20.10.2011
Сообщений: 433
По умолчанию

Спасибо!
Правда ваш пример вызывает еще вопросы, но думаю рано копать еще ))
Хотя почему же, лучше спросить заранее ... наверное.

Не подскажите, &ps[i] - что в данном случае обозначает "&" ?
int argc, _TCHAR* argv[] - что все это значит и для чего ? )
И наверное последний вопрос, можно ли в функции записать более сложную конструкцию аля
Код:
cout << "\nOur famouse investors:" << endl;
	for (i = 0; i < list; i++)
	{
		if (ps[i].money > 10000)
		{
			cout << ps[i].name << endl;
		}
		else cout << "No!" << endl;
	}
Что бы скажем по обращению к функции она исполнялась с данным кодом ?
L6go1as вне форума Ответить с цитированием
Старый 24.11.2011, 02:19   #12
_Ч_
Форумчанин
 
Регистрация: 07.01.2010
Сообщений: 141
По умолчанию

int argc, _TCHAR* argv[] - на это пока лучше забить. студия такую сигнатуру в проекте сгенерила.

в ф-ии все что хотите можно сделать. главное передать нужные параметры.
код превращается в ...
Код:
#include <iostream>

using namespace std;

const int number = 20;
struct funs
{
  char name[number];
  int money;
};

void InputFuns(funs* f)
{
  cout << "Please enter name: ";
  cin >> f->name;
  cout << "Please enter amount of money: ";
  cin >> f->money;
}

void PrintFuns(const funs* f)
{
  cout << "funs:" << endl;
  cout << "\t" << f->name << endl;
  cout << "\t" << f->money << endl;
}

void InputArrayOfFuns(funs* arrayOfFuns, unsigned size)
{
  for (int i = 0; i < size; i++)
    InputFuns(&arrayOfFuns[i]);
}

void PrintArrayOfFuns(const funs* arrayOfFuns, unsigned size)
{
  for (int i = 0; i < size; i++)
    PrintFuns(&arrayOfFuns[i]);
}

int main()
{
  cout << "How much funs came to us?" << endl;
  int gold = 0;
  cin >> gold;

  funs *ps = new funs[gold];

  InputArrayOfFuns(ps, gold);
  PrintArrayOfFuns(ps, gold);

  delete [] ps;
  system("pause");

  return 0;
}
Осознайте новую версию и действуйте по аналогии. Можете сделать ф-ии с другими именами, которые принимают такие же аргументы и вставляйте туда нужный вам код.


& - взятие адреса объекта. ps - указатель на массив и он же указатель на первый элемент.
ps[i] - ссылка на i-ый элемент массива. это аналог записи *(ps + i); ps + i - указатель на i-ый елемент в массиве, звездочка - разыменовывание (т.е. получение ссылки на i-ый элемент массива).
&ps[i] - взятие адресса того, на что ссылается ссылка. т.е. это указатель на i-ый элемент в массиве. он и отдается ф-иям.
_Ч_ вне форума Ответить с цитированием
Старый 24.11.2011, 09:56   #13
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
int argc, _TCHAR* argv[] - что все это значит и для чего ? )
Это студийный способ упрощения жизни программиста при выборе юникод/неюникод для целей при компиляции.

TCHAR-типы в зависимость от настроек юникода раскрываются либо в их юникодовские аналоги, либо в анси.
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
cin и cin.get NightEagle Общие вопросы C/C++ 8 30.03.2011 18:23
Ошибка когда вставляю на страницу ссесию. Bushel PHP 2 17.11.2010 10:07
cin ReaktiV Общие вопросы C/C++ 3 31.05.2010 15:57
Почему когда integer cтановиться =100001,выходит ошибка Дима я Общие вопросы Delphi 8 21.12.2009 11:33
Как узнать когда браузер скачивает, а когда нет? iPod Работа с сетью в Delphi 1 07.05.2007 15:16