АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Качестве аргументов функции

Читайте также:
  1. B) В качестве воспитателя ханского наследника
  2. Абсолютные и относительные ссылки. Стандартные формулы и функции. Логические функции
  3. Анализ аргументов. Логический анализ информации.
  4. Бесконечно малые функции.
  5. В качестве методического издания
  6. Волокнистая соединительная ткань. Морфо-функциональная характеристика. Классификация. Клеточные элементы: происхождение, строение, функции.
  7. Вопрос 3. Трудовые ресурсы мира: количественный и качественный аспекты.
  8. Высокая инфляция и встроенный механизм девальвации в качестве компенсационной меры
  9. Глаз. Источники развития. Стенки глаза. Аккомадационный аппарат глаза. Строение и функции.
  10. ГОСУДАРСТВО: ОПРЕДЕЛЕНИЕ, ПРИЗНАКИ, ФУНКЦИИ.
  11. Два вида костной ткани, клетки и межклеточное вещество, функции.
  12. Доступная и качественная медицинская помощь

В программировании типично использование массивов строк. Например, процессор ввода в базу данных может проверять команды пользователя в строковом массиве. Для создания массива строк используется двумерный массив символов. Левый индекс определяет число строк, а правый индекс - максимальное число символов в каждой строке. Данный фрагмент кода объявляет массив из 30-ти строк, причем каждая может содержать до 79 символов включительно:

char str_array [30] [80];

Доступ к отдельным строкам очень прост - необходимо просто определить левый индекс. Следующий оператор вызывает функцию gets(), передавая ей в качестве параметра третью строку массива str_array:

gets(str_array [2]);

Строковые функции:

1. Функция strlen() возвращает длину строки, адресуемой параметром str, причем строка должна заканчиваться символом конца строки. Символ конца строки ('0') не учитывается.

#include <string.h>size_t strlen(const char * str);

 

2. #include <string.h>char *strcpy(char * str1, const char * str2);

Функция strcpy() копирует содержимое строки str2 в строку str1. Параметр str2 должен указывать на строку с завершающим нулевым символом. Функцияstrcpy() возвращает значение указателя str1.

Когда массив используется в качестве аргумента функции, передается только адрес массива, а не копия всего массива. При вызове функции с именем массива в функцию передается указатель на первый элемент массива. (Надо помнить, что в С++ имена массивов без индекса - это указатели на первый элемент массива.) Параметр должен иметь тип, совместимый с указателем. Имеется три способа объявления параметра, предназначенного для получения указателя на массив. Во-первых, он может быть объявлен как массив, как показано ниже:

#include <iostream.h>

void display(int num[10]);

int main (void) /* вывод чисел */

{

int t [10], i;

for (i=0; i<10; ++i) t[i]=i;

display(t);

return 0;

}

 

void display(int num[10])

{

int i;

for (i=0; i<10; i++)

cout<<num[i];

}
Хотя параметр num объявляется как целочисленный массив из десяти элементов, С++ автоматически преобразует его к целочисленному указателю, поскольку не существует параметра, который мог бы на самом деле принять весь массив. Передается только указатель на массив, поэтому должен быть параметр, способный принять его.

 

программа может быть написана без передачи всего массива:

#include <iostream.h>

void display(int num);

int main(void) /* âûâîä ÷èñåë */

{

int t[10], i;

for (i=0; i<10; ++i) t[i] = i;

for (i=0; i<10; i++)

display(t[i]);

return 0;

}

void display(int num)

{

cout<< num;

}

11.Структуры С/С++: синтаксис и правила.

Структура - это совокупность переменных, объединенных одним именем, предоставляющая общепринятый способ совместного хранения информации. Объявление структуры приводит к образованию шаблона, используемого для создания объектов структуры. Переменные, образующие структуру, называются членами структуры. (Члены структуры также часто называются элементами или полями.)

Стандартный вид объявления структуры следующий:

struct ярлык {
тип имя переменной;
тип имя переменной;
тип имя переменной;
} структурные переменные;

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

Обычно все члены структуры связаны друг с другом. Например, информация об имени и адресе, находящаяся в списке рассылки, обычно представляется в виде структуры. Следующий фрагмент кода объявляет шаблон структуры, определяющий имя и адрес. Ключевое слово struct сообщает компилятору об объявлении структуры.

struct addr {
char name[30];
char street [40]; char city[20];
char state[3];

};

Объявление завершается точкой с запятой, поскольку объявление структуры - это оператор. Имя структуры addr идентифицирует структуру данных и является спецификатором типа. Имя структуры часто используют как ярлык.

На данный момент на самом деле не создано никакой переменной. Определена только форма данных. Для объявления настоящей переменной, соответствующей данной структуре, следует написать:

struct addr addr_info;

В данной строке происходит объявление переменной addr_info типа addr. При объявлении структуры определяется переменная смешанного типа. До тех пор, пока не будет объявлена переменная данного типа, она не будет существовать.

Важно понять, что каждая вновь создаваемая структурная переменная содержит свои собственный копии переменных, образующих структуру.


1 | 2 | 3 | 4 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)