Переменные. Ключевые слова. Типы данных

Переменные. Ключевые слова. Типы данных

Программирование » C/C++ » Переменные. Ключевые слова. Типы данных

Переменные.

Под переменными можно понимать ячейки памяти (контейнеры) для хранения информации. Запомните, что перед использованием переменной её необходимо объявить. Имена переменных могут начинаться с буквы A-Z (a-z) и содержать цифры 0-9. В именах переменных можно использовать символ подчеркивания. В библиотечных функциях часто используются имена, начинающиеся с этого символа. Старайтесь не использовать имен, начинающихся с символа подчеркивания, чтобы избежать возможных конфликтов с множеством библиотечных имен. Имя переменной (её идентификатор) не может начинаться с цифры! При объявлении переменной, последней надо задать тип.

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

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

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

тип <переменная1>[, <переменная2>, … , <переменнаяN>];

то, что стоит в квадратных скобках - необязательно.

Ключевые слова.

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

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

return

union

const

float

short

unsigned

continue 

for

signed

void

default

goto

sizeof

volatile

do

if

static

while

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

Компилятор Borland C++ 3.1 добавляет к ключевым словам стандарта языка С дополнительные слова, предназначенные для работы с памятью и регистрами процессоров семейства Intel, а также позволяющих использовать прерывания и фрагменты программ на другом языке. Например, на паскале или ассемблере.

Вот эти дополнительные ключевые слова:

asm

 _es

 _huge

 pascal

_asm

__es

__huge

_pascal

__asm

_export

interrupt

__pascal

cdecl

__export

_interrupt

_saveregs

_cdecl

far

__interrupt

__saveregs

__cdecl

_far

_loads

_seg

_cs

__far

__loadds

__seg

__cs

_fastcall

near

_ss

_ds

__fastcall

_near

__ss

__ds

huge

__near

 

Типы данных.

В языке С все переменные должны быть объявлены до их использования. При объявлении переменной вы указываете тип данных. Переменная будет хранить данные указанного вами типа.

В языке С существует несколько типов данных, которые можно назвать базовыми:

char

символьный

int

целый

float

плавающая точка

double

плавающая точка двойной длины

void

пустой, не имеющий значения

На основе базовых типов вы можете создавать свои типы данных. Создать свой тип данных можно с помощью ключевого слова typedef. Например,

typedef unsigned int UINT;

Здесь UINT это имя нового типа данных.

Любая переменная в программе относится к какому-нибудь типу данных. Например, если нам нужно хранить в переменной целое число (0,1,2,3…), то тип данных может быть целым - int (от слова integer, как в паскале). Если нам требуется хранить в переменной число с плавающей запятой (дробное число) в виде xx.xxx (например, 5.25, 0.134, 400.041), то тип данных для переменной должен быть - float. Для чисел с плавающей запятой существует так же тип - double (двойная точность). Каждый тип данных занимает определённый объем памяти. Вы наверно догадались, что для хранения числа с плавающей запятой типа float необходимо больше памяти, чем для хранения целого числа типа int. Ниже приведена таблица типов данных и объем памяти занимаемый каждым типом данных.

Тип Тип Интервал изменения
char 1 (8) от -128 до 127
unsigned char 1 (8) от 0 до 255

signed char 1 (8) от -128 до 127

int 2 (16) от -32768 до 32767

unsigned int 2 (16) от 0 до 65535

signed int 2 (16) от -32768 до 32767

short int 2 (16) от -32768 до 32767
unsigned short int 2 (16) от 0 до 65535

signed short int 2 (16) от -32768 до 32767

long int 4 (32) от -2147483648 до 2147483647
signed long int 4 (32) от -2147483648 до 2147483647
unsigned long int 4 (32) от 0 до 4294967295
float 4 (32) от 3.4E-38 до 3.4E+38
double 8 (64) от 1.7E-308 до 1.7E+308
long double 10 (80) от 3.4E-4932 до 3.4E+4932

Напомню, что

1 байт - 8 бит(разрядов)

2 байта - 16 бит - слово

4 байта - 32 бита - двойное слово.

Все типы данных перечисленные в этой таблице являются ключевыми словами стандарта ANSI языка C.

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

Операция приведения типов:

(тип)< выражение>

Например,

int x; // Объявление переменной x типа int (целое число)

float y; // Объявление переменной y типа float (плавающая точка)

x = 10;

y = (float)x/3; // Перед делением на 3, знач. переменной x приводится к типу float

После этого переменная y будет хранить число 3.333333

Если написать такую же программу, но не ставить (float) перед x, то

int x; // Объявление переменной x типа int (целое число)

float y; // Объявление переменной y типа float (плавающая точка)

x = 10;

y = x/3; // x - целое число, это число делится на 3 и мы получаем, что y=3!

Отсюда следует вывод, что нужно следить за типами данных и приводить их там где это требуется. Запомните это дабы избежать ошибочных результатов работы программы.

Приведём пример программы в которой мы объявим переменную, присвоим ей значение и выведем это значение на экран с помощью функции printf(). Эта программа выведет на экран следующую строку "Длина равна 50.".

/* Пример 2 */

#include <stdio.h>

void main()

{

int len;

len=50;

printf("Длина равна %d.",len);

}

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

Первая строка - /* Пример 2 */ - это комментарий. Комментарий может стоять в любом месте программы. При компиляции компилятор игнорирует комментарии и не включает их в объектный модуль. В языке С существуют два типа комментариев:

1) /* Первый тип комментария */ - все, что стоит между символами /* и символом */ будет считаться комментарием. Причем с помощью этих символов можно сделать многострочный комментарий.

Например:

/*

Это многострочный

Комментарий

*/

2) // Второй тип комментария - два символа слеш. Все, что будет стоять правее этих символов // будет комментарием.

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

Вторая строка - #include <stdio.h> говорит компилятору, чтобы тот включил файл stdio.h в текст программы. В этом файле находятся объявления всех функций стандартного ввода/вывода.

Третья строка - void main() - начало описания функции main.

Четвёртая строка содержит фигурную скобку - {. Тут начинается тело функции main.

Пятая строка - int len; - в этой строке мы объявляем переменную с именем len. При объявлении переменной надо указать тип данных. Данные указанного типа и будут храниться в этой переменной. В нашей программе мы объявляем переменную целого типа - int. Для хранения данных переменной len будет выделено 2 байта памяти. Переменная сможет принимать значения в диапазоне от -32768 до 32767.

Шестая строка - len=50; В этой строке мы присваиваем переменной len значение 50. Теперь переменная len будет хранить это значение до конца работы программы.

Седьмая строка - printf("Длина равна %d.",len); Она то и выводит на экран строку - "Длина равна 50.". Для вывода информации на экран функция printf() использует спецификаторы формата. Спецификатор формата указывает данные какого типа необходимо вывести. В нашем случае стоит %d - данные целого типа. Так же через запятую перечислено имя переменной - len. Считайте что при выводе на экран функция printf вместо %d подставляет значение переменной len.

Ну и наконец последняя строка - } которая завершает тело функции main.

Не забудьте поставить точку с запятой после:

- объявления переменной

- присваения переменной значения

- вызова функции printf()

Теперь поясним несколько типов данных:

char - символьный тип. Можно хранить один символ например, ch='a'; или можно хранить целое число в диапазоне от -128 до 127. Дело в том, что у каждого символа есть свой уникальный (неповторимый) код. Преобразования символа в код и наоборот производятся автоматически.

unsigned char - беззнаковый. Возможно хранение целого числа в диапазоне от 0 до 255 или одного символа.

int - целое число. Переменная может изменяться от -32768 до +32767.

unsigned int - беззнаковое целое. Переменная сможет хранить целые числа в диапазоне от 0 до 65535.

float - число с плавающей запятой (точкой). Когда речь идёт об плавающей точке, то некоторые сразу думают, что это связано как-то с графикой, что на экране будет плавать запятая и прочее. Вы не увидите плавающую точку на экране монитора. Эта точка плавает между разрядами числа. Допустим было число 100.25, мы поделим его на 10 и получим 10.025. Точка уплыла в лево. Вот так и плавает эта точка и не как иначе. Тип float занимает 4 байта и переменная этого типа изменяется в диапазоне от 3.4E-38 до 3.4E+38. Где E-38 означает, что число 3.4 умножается на число 10 в -38 степени, а E+38 означает соответственно, что число 3.4 умножается на 10 в +38 степени.

3.4 - мантисса (значащая часть числа)

E (E=10) - основание системы счисления.

38 - порядок.

Приведём ещё несколько программ.

Напишем программу, которая будет выводить сумму двух переменных b и c.

В этой программе мы объявим три целочисленные переменные (тип int). Эти переменные мы объявим в теле функции main поэтому они будут локальные.

Напомню, что тело функции начинается с фигурной скобки { и заканчивается фигурной скобкой }

/* Программа для закрепления материала (используем локальные переменные)*/

#include <stdio.h> // Включение файла stdio.h в текст программы

void main()

{

int a,b,c; // Объявление трёх целочисленных переменных типа int

b = 10; // Присваиваем переменной b значение 10

c = 20; // Присваиваем переменной c значение 20

a = b + c; // Переменная a равна сумме переменных b и c

printf("Сумма переменных b и c равна %d",a);

}

Обратите внимание на объявление переменных. Чтобы в нашей программе не писать три раза слово int мы объявили переменные через запятую.

Синтаксис объявления таков:

тип <переменная1>[, <переменная2>, … , переменнаяN];

или проще: тип <список переменных>;

Квадратные скобки означают необязательную часть т.е. вы можете объявить только одну переменную. Не забывайте ставить точку с запятой после объявления переменных. Это очень важно.

Если вы хотите объявить шесть переменных x1,x2,x3,y1,y2,y3 типа char, тогда объявление будет следующим:

char x1,x2,x3,y1,y2,y3; или char x1,y1,x2,y2,x3,y3; // это одно и тоже

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

Для присвоения переменной значения мы использовали оператор = (равно).

Синтаксис для присвоения переменной значения будет следующим:

<переменная> = <значение>;

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

<переменная1> = <переменная2>;

Теперь давайте напишем программу в которой объявим глобальные переменные.

/* Программа для закрепления материала (используем глобальные переменные)*/

#include <stdio.h> // Включение файла stdio.h в текст программы

int a,b,c; // Объявляем три глобальные переменные

void main()

{

b = 10; // Присваиваем переменной b значение 10

c = 20; // Присваиваем переменной c значение 20

a = b + c; // Переменная a равна сумме переменных b и c

printf("Сумма переменных b и c равна %d",a);

}

Результат работы программы не измениться. Мы просто показали, как объявлять локальные и глобальные переменные.




Бардин П.Б. http://proger.ru/

Отзывы (через аккаунты в социальных сетях Вконтакте, Facebook или Google+):

Оставить отзыв с помощью аккаунта ВКонтакте:

Оставить отзыв с помощью аккаунта FaceBook:

Оставить отзыв с помощью аккаунта Google+: