Размер памяти под двойную точность 8

Размер памяти под переменную a 4

Размер памяти под массив d 2000

11. Операция “запятая”

Операция “запятая” для связывания между собой выражений. Список выражений, разделенный запятыми, трактуется как единое выражение и вычисляется слева направо. Пример

if (c=getchar(),c>’a’)

Читается символ в переменную с и сравнивается с символом ‘a’, результат целое число.

Приведение и преобразование типов

Для выполнения однозначного преобразования (cast) объектов одного типа в другой в С имеется специальная конструкция вида:

(имя_типа) выражение;

Пример

float r=3.5;

Int i;

i=(int) r;

Преобразование одного типа в другой тип данных выполняется в соответствии со следующими условиями:

- преобразование используется для однозначного перевода данного значения в другой тип;

- операнд автоматически приводится к другому типу перед выполнением соответствующей арифметической или логической операции;

- если операнд одного типа присваивается лево допустимому объекту другого типа, то приведение типов выполняется автоматически;

- аргумент функции может автоматически приводится к требуемому типу прямо в вызове функции;

- результат выполнения функции может быть автоматически приведен к требуемому типу в момент возврата из функции.


Управляющие структуры

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

Блоки и составные операторы

Любая последовательность операторов, заключенная в { } скобки, является составным оператором (блоком). Внутри блока каждый оператор должен заканчиваться “;”. Составной оператор можно использовать везде, где синтаксис языка допускает обычный оператор.

Пример

if (x+y+z>w)

{

cout<<”\n Happy End”;

x+=3; y-=4; z*=6;

}

Пустой оператор

Он представляется символом “;” перед которым нет выражения. Пустой оператор используется там, где синтаксис языка требует присутствия в данном месте программы оператора, однако по логике программы оператор должен отсутствовать. Необходимость в использовании пустого оператора часто возникает при программировании циклов, когда действия, которые могут быть выполнены в теле цикла, целиком помещаются в заголовке цикла.

Конструкции выбора

К ним относятся операторы: условный операторif; условный оператор if else; условная операция?;

операторswitch.

Оператор if

Синтаксис

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

Оператор;

Если выражение в заголовке условного оператора вырабатывает ненулевое значение, то оператор в условном операторе выполняется, в противном случае, управление передается оператору, следующему за if.

Пример

Int t;

if (t<12) printf (“Доброе утро!”);

if (t>=12) printf(“Добрый день!”);

Оператор if else

Синтаксис

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

Оператор1;

Else

Оператор2;

Если значение выражения не равно 0, то выполняется оператор1, в противном случае – оператор2.

Можно допускать вложенные if else, но следует помнить, что else всегда относится к ближайшему if.

Пример

Int t;

if (t<12)

printf (“Доброе утро!”);

Else

printf(“Добрый день!”);

Условная операция ?

Эта операция может с успехом использоваться вместо конструкции if else там, где входящие в нее операторы являются простыми выражениями.

Синтаксис:

Результат=выражение?выражение1:выражение2;

Пример1

#include <stdio.h>

Main()

{

int i=6, j=4;

int result=(i<j)i:j;

printf(“%d\n”,result);

} // В этом случае result инициализируется j

Пример 2

#include <stdio.h>

Main()

{

int i=6, j=4;

(i<j)? printf(“i<j\n”): printf(“i>=j\n”);

}// Выполняется второй оператор printf

Пример 3

#include <stdio.h>

Main()

{

int i=3, j=5;

printf(“Минимум из i и j – это %d\n”,(i<j)?i:j);

}

Минимум из i и j – это 3

Оператор switch

Конструкция switch заменяет разветвленный многократный оператор if else

Синтаксис:

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

{

case константное_выражение 1:

Оператор1;

case константное_выражение 2:

Оператор2;

case константное_выражение n:

Оператор n;

default:

Оператор;

}

После вычисления выражения в заголовке оператора его результат последовательно сравнивается с константными выражениями, начиная с самого верхнего, пока не будет установлено их соответствие. Тогда выполняется оператор (операторы) внутри соответствующего case,управление передается на следующее константное выражение и проверки продолжаются. Именно поэтому в конце каждой последовательности должен присутствовать оператор break. Осуществляется выход из конструкции switch.

Ветка default (умолчание) может отсутствовать. Если она есть, то последовательность операторов, стоящая непосредственно за default и “:”, выполняется только тогда, когда сравнение ни с одним из стоящих выше константных выражений не истинно.

Пример

#include <stdio.h>