Объявление разных типов переменных




В C++ переменные могут хранить значения только одного типа. Причиной тому является большая разница в размерах памяти, необходимой для хранения значений переменных разных типов. Если некоторые данные программы могут состоять всего из одного числа, то довольно часто разработчикам приходится манипулировать целыми предложениями.
Добавлю, что особенности использования переменных разных типов различны. Пока вы встречались только с переменными типа int:
int х;
х = 1;

Для присвоения значения служит оператор присваивания, которым является знак равно (=).

 

Оператор - это слово или знак, выполняющий одно предписание (одну операцию).


Слева от знака "равно" указывается имя переменной, в которую будет помещено значение, а справа - значение переменной (числовое или текстовое), либо математическое или строковое выражение или другая переменная, из которой берется значение. То есть общий вид оператора присваивания:

Куда (переменная) = что или откуда

Прежде чем использовать в программе новую переменную, вы должны ее объявить:


int x;
х = 10;
int у;
у = 5;

1. Перечень операций над объектами языка Си

Операции языка Си

Любое выражение языка состоит из операндов (переменных, констант и др.), соединенных знаками операций. Знак операции - это символ или группа символов, которые сообщают компилятору о необходимости выполнения определенных арифметических, логических или других действий.

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

Знак операции Назначение операции
() Вызов функции
[ ] Выделение элемента массива
. Выделение элемента записи
-> Выделение элемента записи
! Логическое отрицание
~ Поразрядное отрицание
- Изменение знака
++ Увеличение на единицу
-- Уменьшение на единицу
& Взятие адреса
* Обращение по адресу
(тип) Преобразование типа (т.е. (float) a)
sizeof() Определение размера в байтах
* Умножение
/ Деление
% Определение остатка от деления
+ Сложение
- Вычитание
<< Сдвиг влево
>> Сдвиг вправо
< Меньше, чем
<= Меньше или равно
> Больше, чем
>= Больше или равно
= = Равно
!= Не равно
& Поразрядное логическое "И"
^ Поразрядное исключающее "ИЛИ"
| Поразрядное логическое "ИЛИ"
&& Логическое "И"
|| Логическое "ИЛИ"
?: Условная (тернарная) операция
= Присваивание
+=, - =, *=, /=, %=, <<=, >>=, &=, |=, ^= Составные операции присваивания (например, а *= b (т.е. a = a * b) и т.д.)
, Операция запятая

 

 

2. Логические операции в языке Си

Язык С имеет ровно три логические операции: это

  • && или (AND);
  • || или (OR);
  • ! или (NOT).
  • Как принято еще называть логические операции?

1. Операция "&&" или операция "AND" называется еще операцией "и" или логическим умножением.

2. Операция "||" или операция "OR" называется еще операцией "или" или логическим сложением.

3. Операция "!quot; или операция "NOT" называется еще операцией "не" или логическим отрицанием.

 

3. Форма записи функции printf

Структура (синтаксис) обращения к функции:

printf ("строка формата", арг1, арг2, …, аргN);

В качестве аргументов функции арг1…аргN используются идентификаторы переменных или выражения. Список аргументов может быть пустым.

Строка формата записывается в двойных кавычках и может содержать:

  • любой текст;
  • спецификаторы форматов (по количеству аргументов), обозначаются символом %, содержат информацию о типе выводимого значения и его модификации;
  • управляющие символы.

Примерint a = 16;
printf ("%d %o %x",a,a,a); // Выводнаэкран: 16 10 20

Т.е. принцип этой функции заключается в следующем: в кавычках пишите нужные спецификаторы формата (ровно столько, сколько нужно вывести переменных); далее после кавычек ставите запятую и перечисляете, так же через запятую, все переменные для вывода в том порядке, в каком вы выставили спецификаторы формата.

4. Формазаписифункцииscanf

Функция scanf() — это программа ввода общего назначения, выполняющая ввод с консоли. Она может читать данные всех встроенных типов и автоматически преобразовывать числа в соответствующий внутренний формат, scanf() во многом выглядит как обратная к printf(). Вот прототип функции scanf():

intscanf(constchar * управляющая_строка,...);

Эта функция возвращает количество тех элементов данных, которым было успешно присвоено значение. В случае ошибки scanf() возвращает EOF, управляющая_строка определяет преобразование считываемых значений при записи их переменные, на которые указывают элементы списка аргументов.

Управляющая строка состоит из символов трех видов:

  • спецификаторов преобразования,
  • разделителей,
  • символов, не являющихся разделителями.

 

5. Форма записи условного оператора if

if(<условие>)

{

<операторы>

}

else

{

<операторы>

}

 

6. Форма записи оператора ветвления switch

switch(i)

{

case0:

case1: // последовательность операторов

break;

case2: // последовательность операторов

break;

default:

;

}

 

7. Форма записи цикла while

// форма записи цикла while

while(/*условие продолжения цикла while*/)

{

/*блок операторов*/;

/*управление условием*/;

}

 

8. Форма записи цикла dowhile

// форма записи оператора цикла dowhile:

do// начало цикла dowhile

{

/*блок операторов*/;

}

while(/*условие выполнения цикла*/);

 

9. Форма записи цикла for

for (инициализация; условие; приращение) { //блок команд

}

 

10. Преимущества разбиения программ на функции

Разбиение на сегменты кода функциями позволяет создавать части кода, которые выполняют определенные задания. После выполнения происходит возврат в место, откуда была вызвана функция. Причиной создания функции является необходимость выполнять одинаковое действие несколько раз.

11. Структура функции

В общем виде функция выглядит следующим образом:

возвр-тип имя-функции(список параметров)

{

тело функции

}

возвр-тип определяет тип данного, возвращаемого функцией[1]. Функция может возвращать любой тип данных, за исключением массивов список параметров — это список, элементы которого отделяются друг от друга запятыми. Каждый такой элемент состоит из имени переменной и ее типа данных. При вызове функции параметры принимают значения аргументов. Функция может быть и без параметров, тогда их список будет пустым. Такой пустой список можно указать в явном виде, поместив для этого внутри скобок ключевое слово void.

В объявлениях (декларациях) переменных можно объявить (декларировать) несколько переменных одного и того же типа, используя для этого список одних только имен, элементы которого отделены друг от друга запятыми. А все параметры функций, наоборот, должны объявляться отдельно, причем для каждого из них надо указывать и тип, и имя. То есть в общем виде список объявлений параметров должен выглядеть следующим образом:

f(тип имя_переменной1, тип имя_переменной2,..., тип имя_переменнойN)

Вот, например, два объявления параметров функций, первое из которых правильное, а второе — нет:

f(int i, int k, int j) /* правильное */

f(int i, k, float j) /* неправильное, у переменной k должен быть

собственный спецификатор типа */

 

12. Что такое фактические и формальные параметры вызова функции

Параметры, перечисленные в заголовке описания функции, называются формальными, а записанные в операторе вызова функции — фактическими (или аргументами).

13. Понятие глобальных и локальных объектов

По зоне видимости различают локальные и глобальные переменные. Первые доступны только конкретной подпрограмме, вторые — всей программе

14. Что такое указатель. Для чего применяются указатели

Указатель – это переменная, значением которой является адрес некоторого объекта (обычно другой переменной) в памяти компьютера.

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

· указатели являются средством, при помощи которого функции могут изменять значения передаваемых в нее аргументов;

· при помощи указателей выполняется динамическое распределение памяти;

· указатели позволяют повысить эффективность программирования;

· указатели обеспечивают поддержку динамических структур данных (двоичные деревья, связные списки).

 

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

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

& Операция получения адреса: выдаст адрес переменной, имя которой стоит за обозначением операции: &nurse является адресом переменной nurse
* Косвенная адресация: выдает значение, записанное по адресу, на который ссылается указатель:

nurse = 22;
ptr = &nurse; /* указательна nurse */
val = *ptr

В результате работы этих операторов переменной val присваивается значение 22.

 

16. Что такое массив. Общая форма объявления массивов

Массивы - это группа элементов одинакового типа (double, float, int и т.п.).

тип имя_массива[размер1]...[размер№] = {список_значений};

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

17. Каким образом связаны массивы и указатели

Указатель используется для доступа к элементам массива. Доступ к элементам массива осуществляется по его индексу.

18. Способы инициализации массивов

Массив можно инициализировать одним из трех способов:

• при создании массива — используя инициализацию по умолчанию (этот метод применяется только для глобальных и статических массивов);
• при создании массива — явно указывая начальные константные значения;
• в процессе выполнения программы — путем записи данных в массив.

 

19. Каким образом осуществляется передача массива в функцию. Проиллюстрировать примером.

Функция может инициализировать массив, прибавить к массиву значения или вывести элементы массива на экран. Когда вы передаете массив в функцию, вы должны указать тип массива. Нет необходимости указывать размер массива. Вместо этого вы передаете параметр например number_of_elements, который содержит количество элементов в массиве:

 

Код:

 

void some_function(int array[], int number_of_elements);

 



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


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