|
Программирование >> Элементы языков с и с++
,1/- int tmain (int argc, char* argv[]) определена no умолчанию (приведена для примера) struct ааа { public: int i; int f(int a) функция-член структуры ( объявлена прямо в структуре return (-а) , }; }bbb; int а; a=bbb.f(15); printf( a=%d\n ,а); getch(); сл C:\W(NDOWS\system32\cmd.exe a =-15 Для продолжения нажиите любую клавишу Рис. 7.6. Результат работы программы из листинга 7.6 П в языке С внешнюю или статическую структуру можно инициализировать. Например, имеем шаблон: struct date { int day; день недели int month; номер месяца int year; год char monthname[4]; название месяца }; В этом случае можем инициализировать структуру: struct date dl={4,5,2003,sept}; Инициализация массива структур будет задаваться так: struct а {char *s; int i;}m[3]={ ul ,О, u2 ,0, u3 ,0 ( □ присваивать значения одной структуры другой разрешено только для экземпляров одной структуры. Например, существует структура: struct А {int i; char d}a,al; и struct B{int i; char d}b; В этом случае можно выполнить a = ai; или ai = а;. Но операцию a=b; выполнить нельзя, т. к. а и ь считаются относящимися к шаблонам разного типа (у их шаблонов разные имена и этого достаточно, чтобы считать их разными, хотя по структуре они совпадают). Структуры И функции функция может возвращать структуру или указатель на структуру. Например, если объявить структуру mystruct fund (void);, то функция fund О возвратит структуру. Для структуры mystruct *func2(void); функция func2 () возвратит указатель на структуру. Структура может передаваться в качестве аргумента функции следующими способами: □ непосредственно: void fund (mystruct s); □ через указатель: void func2(mystruct *sptr); □ в языке С++ через ссылку: void func3(mystruct &sref); Чем отличаются понятия ссылка и указатель ? Ссылка - это непосредственно адрес, а указатель - переменная, содержащая адрес (подобное различие существует между константой и переменной). Программы со структурами Приведем примеры программ, где используются функции, имеющие на входе структуру и возвращающие либо саму структуру, либо указатель на нее. (Листинг 7.7 II 27.срр : Defines the entry point for the console application, linclude stdafx.h linclude <stdio.h> 11 tor getchar (), putchar () linclude <conio.h> linclude <stdlib.h> for atoi() linclude <string.h> linclude <malloc.h> for raallocO Idefine eof -1 Idefine maxline 1000 -------Ввод строки с клавиатуры int getiine (char s [), int lim) { int c,i; for(i=0; i<lim-l && (c=getchar()) != eof && с != \n; i++) s[i]=c; s[i]=\0; i++; для учета количества return(i) ; ----------------------------------------- struct Jcey ( char *keyword; int Iceycount; )tab[] = { break ,0, case ,0. Функция возвращает структуру В листинге 7.7 приведен пример программы, в которой функция возвращает структуру.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |