Начала программирования на языке Си, страница 6

Каждая переменная перед ее использованием в программе должна быть определена или описана, т.е. для нее должно быть указано имя и тип. На основании этого описания в машине ей выделяется память и определяется какие операции над переменной допустимы. Размер участка памяти, выделяемой для переменной, и интерпретация содержимого зависят от типа, указанного в определении переменной.

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

тип имя_переменной (или список имен переменных);

Например, int N, т.е. описана переменная целого типа с именем N. Если необходимо описать несколько переменных одного типа, то можно написать так

int i, J, K, l, m, N.

Здесь int – тип, i, J, K, l, m, N имена переменных.

Примеры описания переменных других типов:

char  c, s;                     /* описание переменных символьного типа и целых чисел от -127 до 128*/

char  stroka[];             /* описание переменной типа строка*/

double  X,Y,Z;              /* описание действительных переменных */

float  one, two, three;  /* описание действительных переменных*/

enum   K1,K2,L8;        /*описание переменных целого типа*/

4.2.4. Инициализация переменных

Если мы описали переменную так как в предыдущем примере, то по умолчанию машина будет считать ее значением пусто. То есть машина просто зарезервировала для данной переменной необходимое по размеру для данного типа данных место. При этом, например значение переменных X,Y или c, s при выполнении действий над ними будут считаться равными нулю. Если же переменная имеет начальное значение не пусто, то мы можем присвоить ей это значение при ее описании. Процесс присвоения переменной начального значения при ее описании называется инициализацией. В языке Си он реализуется следующим образом.

тип имя_переменной=начальное значение;

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

Int  i=324, J=1, K, l, m, N=-40.

char  c=’A’, s=-34;       /* описание переменных символьного типа и целых чисел от -127 до 128*/

char  stroke[]=”Строка для примера";     /* описание переменной типа строка*/

double  X,Y=-6789.01,Z=8.907;       /* описание действительных переменных */

float  one=1, two=0.00005, three;    /* описание действительных переменных*/

enum   K1=31567,K2,L8=89; /*описание переменных целого типа*/

Контрольные вопросы и задания

1.На какие два типа делятся константы?

2. Для чего в языках программирования вводится понятие типа данных?

3. Какие ошибки содержатся в следующей программе:

#include <stdio.h>

const  float  Ro=1.87;

void  main()

{

printf(“Зравствуй»);

}

4. Какие ошибки содержатся в следующем выражениях:

int  Ro=1.87;

char   KJl=-130;

unsigned int    mN=-1;

int In=12,   It=1234,  JKL=1.34;

5. Что такое инициализация переменных?


5. ВЫРАЖЕНИЯ И ПРИВЕДЕНИЕ АРИФМЕТИЧЕСКИХ ТИПОВ

5.1. Арифметические выражения

Для конструирования арифметических выражений в программах на языке Си допустимы следующие операции над операндами:

+ - сложение (или унарная операция +);

- - вычитание (или унарная операция -);

* - умножение;

/ - деление;

% - деление по модулю (т.е. получение остатка от целочисленного деления первого операнда на второй).

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

Например:

a+b;  (a+b)*c;  12/3-x;  3/14*z;  k/3;  16%i

Следует помнить, что при делении “/”, применимом к целочисленным операндам за счет округления результата может получиться например следующий результат 5/3 даст в итоге 1, а вот выражение 5.0/3=1.666…, а 3/5 даст 0

Примеры:

int a=3, b=8, c=0, d;

d=b%a     // результат: 2

d=a%b     // результат: 3

d=b%c     // результат: ошибка

В языке Си определены также унарные операции ++ (инкремент) и – –  (декремент) для изменения операнда на 1. Каждая из этих операций может быть префиксной и постфиксной.

Примеры:

Пусть int i=3, j, k=0; тогда