Присваивание структур

Для переменных одного и того же структурного типа определена операция присваивания. При этом происходит поэлементное копирование.

Student t=s;

Информация, содержащаяся в одной структуре, может быть присвоена другой структуре того же типа с помощью одиночного оператора присваивания, то есть не нужно присваивать значение каждого члена по отдельности.

Например:

#include <stdio.h>

void main(){

struct {

int a;

int b;

} x, y;

x.a = 10;

x.b = 20;

y = x;

printf("Содержимое y: %d %d", y.a, y.b);

}

 

Доступ к элементам структур (полям данных)

С помощью операций прямого и косвенного выбора (соответственно символы точка '.' и '->') организуется доступ к элементам структур. Первая операция используется со структурными объектами, а вторая – при наличии указателя на структурный объект.

Операция прямого доступа к элементам структуры ('.') – результатом является значение элемента структуры.

Синтаксис операции прямого доступа к элементам структуры:

ИмяСтруктуры.ИмяЭлементаСтруктуры

Данная операция используется для доступа к элементу структуры с тем, чтобы присвоить ему значение, напечатать его, использовать его значение в арифметической операции и т.д. Эта операция является первичной и находится в самой верхней строке таблицы приоритетов операций языка С++.

Именем структуры можно пользоваться сразу же после его появления в программе.

Например:

employee.name – массив типа char, содержащий значение «Петров»

employee.rate – переменная типа float со значением 58000.0

 

Если в программе определены две структуры с одинаковыми типами элементов, то для компилятора типы таких структур различны. В этом случае взаимное присваивание можно выполнять лишь на уровне элементов структур. Если объекты принадлежат к одному структурному типу, то возможно косвенное присваивание структур путём присваивания значений одного структурного объекта другому.

Например:

struct A {

int j;

char titl[10];

char x;

} Аа, Аb = {128,"Мир",'Q'};

Здесь допустимы операторы присваивания вида Аа=Аb;. В этом случае элементы структурного объекта Аа будут иметь значения, совпадающие со значениями соответствующих элементов объекта Аb.

Пример 1.

//Инициализация структуры и вывод значений ее элементов

#include<stdio.h>

void main() {

struct goods {

char* name;

long price;

float percent;

int vol;

char date[9];

};

struct goods coat={"пиджак черный",4000,7.5,220,"12.01.09"};

printf("\n Товар на складе:");

printf("\n Наименование: %s.", coat.name);

printf("\n Оптовая цена: %ld руб.", coat.price);

printf("\n Наценка: %3.1f %%.", coat.percent);

printf("\n Цена товара: %ld руб.",

(long)(coat.price*(1.0+coat.percent/100)));

printf("\n Объем партии: %d штук.", coat.vol);

printf("\n Дата поставки: %s.",coat.date);

}

 

Пример 2. Сложение комплексных чисел

#include<stdio.h>

typedef struct {

double real;

double imag;

} complex;

void main() {

complex x,y,z;

printf("\n Введите два комплексных числа:");

printf("\n Вещественная часть:");

scanf("%lf", &x.real);

printf("\n Мнимая часть:");

scanf("%lf", &x.imag);

printf("\n Вещественная часть:");

scanf("%lf", &y.real);

printf("\n Мнимая часть:");

scanf("%lf", &y.imag);

z.real=x.real+y.real;

z.imag=x.imag+y.imag;

printf("\n Результат: z.real=%f z.imag=%f", z.real,z.imag);

}

 








Дата добавления: 2015-02-16; просмотров: 1433;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.