Передача структур в качестве параметров

Переменные структурного типа и элементы структуры можно передавать в функции в качестве параметров.

Передача параметров может выполняться:

· по ссылке или указателю;

· по значению.

При передаче параметра по указателю передается только указатель на структуру, при передаче по значению в стек копируется все содержание структуры.

Например:

struct structA {

int i; char c;} sA, *psA=&sA;

void F1(struct structA sA);

// Передача параметров по значению

void F2(struct structA *psA);

// Передача параметров по указателю

void F3(struct structA &sA);

// Передача параметров по ссылке

void F2(struct structA *psA) {

psA->i =10; }

// Доступ к элементу структуры

 

При большой вложенности вызовов и использовании большого числа структур или их значительных размерах вызов по значению может привести к переполнению стека.

 

Функция может возвращать значение структурного типа или типа указателя на структуру.

 

Например:

struct structA { int i; char с;};

struct structA Function3(void);

// Функция возвращает значение

// структурного типа

struct structA *Function4(void);

// Функция возвращает указатель

// на структуру