Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Условный оператор if




Операторы языка С

Операция вызова функции

Void main(void)

Void main(void)

Void main(void)

{

int size;

float a;

double am[10];

size=sizeof(int);

printf("Размер памяти в байтах под тип int: %d\n",size);

size=sizeof(a);

printf("Переменная a типа float занимает %d байта памяти\n",size);

size=sizeof(am);

printf("Размер памяти, отводимой под массив am типа double: %d\n",size);

size=sizeof(am)/sizeof(double);

printf("Количество элементов массива am = %d\n",size);

}

 

Прямое назначение оператора sizeof() — динамическое распределение памяти. В примере 4.7 резервируется память под один элемент, в примере 4.8 — под три элемента.

 

//Пример 4.7.

//Функция malloc() резервирует память под один элемент типа int

#include <stdio.h>

#include <alloc.h>

{

int *iptr;

iptr=(int*) malloc(sizeof(int)); // Распределение памяти

*iptr=421;

printf("Содержимое iptr:%p\n",iptr);

printf("Адресуемое значение: %d\n",*iptr);

}

//Пример 4.8.

// Динамическое pаспpеделение памяти с помощью операции sizeof()

// Функция calloc() резервирует память под несколько элементов

#include <stdio.h> // Функция printf()

#include <conio.h> // Функции clrscr(), getch()

#include <alloc.h> // Функция calloc()

{

#define NUMINTS 3

int *list,i;

clrscr();

list = (int *) calloc(NUMINTS, sizeof(int));

*list = 123;

*(list+1) = 456;

*(list+2) = 789;

printf(" Список адресов: ");

for (i=0; i<NUMINTS; i++) printf("%4p ",(list+i));

printf("\n Список значений: ");

for (i=0; i<NUMINTS; i++) printf("%4d",*(list+i));

printf("\n");

getch();

}

Возможны две формы вызова функции:

имя_функции (параметры); (см. примеры 3.4, 3.7);

имя_переменной = имя_функции(параметры);

Запись printf(“Значение = %d\n”,i) — это тоже операция вызова функции.

 

 

Операторы языка С можно подразделить на следующие группы:

; — пустой оператор;

a = b; — оператор-выражение;

{ } — составной оператор;

управляющие операторы:

1) условного перехода if...else и выбора switch();

2) цикла: for, while, do...while;

3) безусловного перехода goto;

4) другие операторы: break, continue, return.

Первый вариант — полная форма оператора if:

if (условие) оператор1;

else оператор 2;

Структура данного оператора показана на рис. 5.1, а. Вариант использования формы см. в примере 4.3.

Второй вариант — усеченная форма оператора if (рис. 5.1, б, см. пример 5.8):

if (условие) оператор 1;

оператор 2;

...................

Третий вариант — вложенная форма оператора if (рис. 5.1, в, пример 5.7):

if (условие 1) оператор 1;

else if (условие 2) оператор 2;

else if (условие 3) оператор 3;

.......................................................

Условие может быть любой операцией (арифметической, логической, сравнения и т.д.). Если результатом ее выполнения является значение, не равное нулю, что равносильно “истине”, то переходят к оператору 1, иначе (результат равен нулю — “ложь”) переходят к оператору 2 в первом и втором вариантах или к проверке условия 2 вложенного оператора if.

Рис. 5.1

 

Оператор — это любое выражение языка С. Он может быть составным. Тогда его надо отделить фигурными скобками { }. Скобки необходимо использовать в операторе if для удобства чтения, а так же, чтобы избежать ошибки в порядке выполнения действий.

Оператор switch

Это оператор множественного выбора (переключения). Основная форма оператора имеет вид:

switch (выражение)

{

case constant 1: последовательность операторов; break;

case constant 2: последовательность операторов; break;

.......................

case constant N: последовательность операторов; break;

default: последовательность операторов;

}

Слово default и соответствующая последовательность операторов может отсутствовать.

Порядок выполнения оператора switch: сначала вычисляется выражение в скобках, затем полученное значение сравнивается со списком меток, следующих за словом case, далее выполняется последовательность операторов, следующая за двоеточием. Если соответствующая метка не найдена, то выполняется последовательность операторов, находящаяся за ключевым словом default. Наличие оператора break приводит к выходу из оператора switch (см. пример 5.1), при отсутствии слова break происходит последовательное выполнение всех вариантов case, следующих за текущим (см. пример 5.2).

 

// Пример 5.1.

// Операторы switch и break




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


Дата добавления: 2014-12-27; Просмотров: 431; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.