русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Определение переменной. Инициализация.


Дата добавления: 2013-12-24; просмотров: 919; Нарушение авторских прав


 

Объявления переменной имеет следующий формат:

спецификатор-типа описатель [=инициатор] [,описатель [= инициатор] ]...;

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

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

Инициатор - задает начальное значение или список начальных значений, которые (которое) присваивается переменной при объявлении.

 

Простое определение состоит из спецификации типа, за которой следует точка с запятой. Вот примеры.

 

int index;

int height;

char ch;

char next;

long double precision;

 

Когда определяется несколько идентификаторов переменных данного типа, то за спецификацией типа располагается список имен, разделенных запятыми. Предыдущее определение можно переписать так :

 

int index, height;

char ch,next;

long double precision;

 

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

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

 

Например

int index = 1000;



 

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

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

Спецификатор const

 

Часто в программах встречаются константы, которым имеет смысл дать имя. Например, мы можем знать, что в нашей программе максимальная длина считываемой строки равна 512 байт. Если мы везде в программе будем на месте этой длины писать 512, т.е., например,

if (i < 512)

то встают две проблемы :

1) что обозначает это 512 - знает только программист (и то может через полгода забыть) - это так называемое "магическое число" и

2) если мы напишем программу, где такой цикл встречается часто, а потом вдруг выяснится, что наша длина строки не 512, а, скажем, 1024 байта, то все вхождения этих 512 в тексте программы нужно будет изменить на 1024.

Решение этих проблем состоит в использовании идентификатора, инициализированного значением 512. При этом он должен продолжать оставаться константой, т.е. его нельзя изменить в программе. Такие константы определяются с помощью модификатора const.

Например в нашем случае

const int maxlen = 512;

и, соответственно,

if (i < maxlen)

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

Такая запись будет ошибкой

const int maxlen; // нет инициализации

 

и такая - тоже (само собой)

 

maxlen = 1024; // это константа!

 



<== предыдущая лекция | следующая лекция ==>
Базовые типы данных. | Резисторы постоянного сопротивления


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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