Производные типы данных

Параметры КОМАНДНОЙ СТРОКИ

ССЫЛКИ

Ссылка - это псевдоним для другой переменной. Они объявляются при помощи символа &. Ссылки должны быть проинициализированы при объявлении, причем только один раз.

Тип "ссылка на type" определяется следующим образом:

type& имя_перем = иниц.

Ссылка при определении сразу же инициализируется. Инициализация ссылки производится следующим образом:

int i = 0;

int& iref = i;

Физически iref представляет собой постоянный указатель на int - переменную типа int* const. Ее значение не может быть изменено после ее инициализации. Ссылка отличается от указателя тем, что используется не как указатель, а как переменная, адресом которой она была инициализирована:

iref++; //то же самое, что i++

int *ip = &iref; //то же самое, что ip = &i;

Таким образом, iref становится синонимом переменной i.

При передаче больших объектов в функции с помощью ссылки он не копируется в стек и, следовательно, повышается производительность.

#include <iostream.h>

void incr (int&);

void main(void){

int i = 5;

incr(i);

cout<< "i= " << i << "\n";

}

void incr (int& k){

k++;

}

Поскольку ссылка это псевдоним, то при передаче объекта в функцию по ссылке внутри нее объект можно изменять. Ссылки не могут ссылаться на другие ссылки или на поле битов. Не может быть массивов ссылок.

Ссылка может использоваться для возврата результата из функции. Возвратить результат по ссылке - значит возвратить не указатель на объект и не его значение, а сам этот объект.

У функции main() могут быть свои формальные аргументы. В них возникает необходимость, если нужно передать какие-либо значения в программу из командной строки.

int main(int argc, char *argv[]) {}

argc – определяет кол-во передаваемых параметров в командной строке, включая имя самой программ.

*argv[] – это массив указателей на строки.

argv[0] – имя самой программы;

argv[1] – первый параметр и т.д.

Функция main() может возвращать значение, если необходимо. Любая программа должна возвращать в DOS код возврата. При нормальном завершении он равен 0. В командных файлах можно анализировать этот код командой IF ERRORLEVEL 0 echo «Ok!». Если нет необходимости возвращать значение, то оператор return не нужен.

#include <iostream.h>

int main(int argc, char* argv[]) {

if(argc<2) {

puts(“Нет аргументов в строке”);

exit(1);

}

else {

cout<<”Имя выполняемой программы”<<argv[0]<<endl;

cout<<”Аргумент командной строки”<<argv[1]<<endl;

}

return 0;

}

Если программа завершилась с ошибкой, то можно передать код ошибки в DOS функцией exit(1).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: