3. Передача структур у функції

Структури можуть передаватися функціям шляхом передачі окремих елементів структури, передачі всієї структури або передачі покажчика на структуру. Коли структури або їхні окремі елементи передаються функціям, вони передаються викликом за значенням. Тому функція, яку викликають, не може змінювати елементи структури у функції, що викликає.

Масиви структур, як і інші структури, викликаються за посиланням. Але, використовуючи структуру, в якій як елемент є масив, можна здійснити виклик масиву за значенням. Викликаючи структуру за значенням, ми і масив викликаємо за значенням.


Приклад програми , яка дозволяє визначити будь-яке комплексне число та вивести це число.

•Визначимо структуру number, яка складається з одного елемента -  int x, та структуру complex, яка складається з двох елементів – number realValue, number imageValue.
•Функція setComplex дозволяє визначити значення комплексного числа.
•Функція printComplex реалізує виведення комплексного числа. Як параметр цим функціям передається адреса структури complex, тобто адреса комплексного числа dataValue, яке визначено у функції main.

#include <conio.h>

#include <stdio.h>

#include <math.h>

//Створення структури number

typedef struct {

int x;

} number;

//Створення структури complex

typedef struct {

number realValue;

number imagValue;

} complex;

void setComplex (complex *);

void printComplex (complex *);



int main () {

complex dataValue;

printf("Complex number?\n");

setComplex(&dataValue);

printf("Reprezentation of the complex number:\n");

printComplex(&dataValue);

getch();

return 0;

}



//Встановлення значення комплексного числа

void setComplex(complex *c) {

printf("Real part:\n");

scanf("%d", &(c->realValue.x));

printf( "Image part:\n");

scanf("%d", &(c->imagValue.x));

}

//Виведення комплексного числа

void printComplex(complex *c) {

printf("%4d", c->realValue.x);

printf("%c",(c->imagValue.x < 0 ? '-' : '+'));

printf("%4di", abs(c->imagValue.x));

}



Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання

Вирівнювання тексту Вирівнювання тексту

Ширина абзацу Ширина абзацу

0