Операции над указателями на структуры

Эти операции не отличаются от операций над другими указателями на данные. Исключение составляет операция «стрелка» (->). Если присвоить указателю на структуру конкретного структурного типа значение адреса одного из элементов массива структур того же типа, то, изменяя значение указателя (например, с помощью операций ++ или --), можно равномерно «перемещаться» по массиву структур.

Пример 2. Вычислить сумму заданного количества комплексных чисел, представленных в программе массивом структур.

#include <stdio.h>

void main (){

struct complex {//Опредение структуры

float x;

float y;

}array[]={1.0,2.0,3.0,-4.0,-5.0,-6.0,-7.0,-8.0};

struct complex summa = {0.0, 0.0};

struct complex *point = &array[0];

int k, i;

k=sizeof(array)/sizeof(array[0]);

for (i=0; i<k; i++){

summa.x+=point->x;

summa.y+=point->y; }

printf("\n Сумма: real=%f, \t imag=%f", summa.x, summa.y);

}

Пример 3. Программа считывает время с компьютера и переводит его во время по Гринвичу.

#include <stdio.h>

#include <time.h>

void main() {

struct tm {

int tm_sec; //Секунды

int tm_min; //Минуты

int tm_hour; //Часы (0-23)

int tm_mday; //День месяца (1-31)

int tm_mon; //Месяц (0-11)

int tm_year; //Год (календарный год минус 1900)

int tm_wday; //День недели (0-6; Воскресенье = 0)

int tm_yday; //День года (0-365)

int tm_isdst; //0, если переход на летнее время не используется

};

time_t t;

struct tm *gmt, *area;

t = time(NULL);

//Преобразует дату и время в структуру

area = localtime(&t);

printf("Секунды: %d\n", area->tm_sec);

printf("Минуты: %d\n", area->tm_min);

printf("Часы: %d\n", area->tm_hour);

printf("День: %d\n", area->tm_mday);

printf("Месяц: %d\n", area->tm_mon);

printf("Год: %d\n", area->tm_year);

printf("День недели: %d\n", area->tm_wday);

printf("День года: %d\n", area->tm_yday);

printf("Местное время: %s", asctime(area));

//Преобразуем структуру в строку

gmt = gmtime(&t);

//Преобразует дату и время во время по Гривинчу

printf("Время по Гринвичу: %s", asctime(gmt));

}








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


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

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

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

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