Значение переменной невозможно использовать как константу с
Константа, переменная — это основополагающие понятия в любом языке программирования. Дадим определения этим понятиям.
Константа — это величина, которая при выполнении программы остаётся неизменной.
Переменная — это ячейка памяти для временного хранения данных. Предполагается, что в процессе выполнения программы значения переменных могут изменяться.
Описание и инициализация переменных
Прежде чем использовать в программе какую-то переменную, надо обязательно дать её описание , то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:
int k; // это переменная целого типа int
double x; // это переменная вещественного типа удвоенной точности
Если имеется несколько переменных одного типа, то допускается их описание через запятую в одном операторе, например:
После описания переменной её можно использовать, но возникает вопрос: а какое значение имеет переменная сразу же после её описания? Ответ таков: в программе на языке C# значение переменной после описания не определено. Такая переменная может использоваться в левой части оператора присваивания, но её нельзя использовать в выражении или в правой части оператора присваивания. Например:
y=z+1; // а так нельзя! Переменная z не определена
Для последнего оператора компилятор языка C# выдаст сообщение об ошибке. Этим свойством ( нельзя использовать переменную, которая не получила ни какого значения ) язык C# выгодно отличается от своих предшественников — языков С и С++.
Чтобы избежать проблемы, рекомендуется инициализировать переменные , то есть не просто выделять память под переменные, но и задавать им при этом необходимые значения. Например:
double x=3, y=4, z=5;
Инициализация переменных выполняется один раз на этапе компиляции и ни как не сказывается на скорости работы программы.
Задание и использование констант
Выше было дано определение констант. Теперь рассмотрим работу с константами более подробно.
Все константы вне зависимости от типа данных можно подразделить на две категории: именованные константы и константы, которые не имеют собственного имени. Например:
25 — константа целого типа;
3.14 — вещественная константа;
‘A’ — символьная константа.
Все три приведённые здесь константы не имеют имени, они заданы своим внешним представлением и используются в программе непосредственно, например так:
int k=25; // переменная k инициализирована константой — целым числом 25.
В ряде случаев константе удобнее дать имя и использовать её далее по имени. Это делает текст программы более наглядным. Обычно применяется для математических или физических констант.
В языке C# определить именованную константу очень просто Для этого используют ключевое слово const , например:
const double PI=3.14; // здесь PI — константа
Значение переменной невозможно использовать как константу с
Отличительной особенностью переменных является то, что мы можем многократно в течение работы программы изменять их значение:
int n ; n = 9; n = 5;
Но кроме переменных в языке программирования C++ можно определять константы . Их значение устанавливается один раз и впоследствии мы его не можем изменить. Константа определяется практически так же, как и переменная за тем исключением, что в начале определения константы идет ключевое слово const . Например:
const int n ; // или // const int n = 22;
И также в процессе программы мы сможем обращаться к значению константы:
#include int main() < const int age ; std::cout
Но если же мы захотим после определения константы присвоить ей некоторое значение, то компилятор не сможет скомпилировать программу и выведет ошибку:
const int age ; age = 78;
То есть такой код не будет работать. И так как нельзя изменить значения константы, то ее всегда необходимо инициализировать, если мы хотим, чтобы она имела некоторое значение.
Если константа не будет инициализирована, то компилятор также выведет ошибку и не сможет скомпилировать программу, как в следующем случае:
const int age;
В качестве значения константам можно передавать как обычные литералы, так и динамически вычисляемые значения, например, значения переменных или других констант:
int a ; const int b ; const int d ; const int x ;
Обычно в качестве констант определяются такие значения, которые должны оставаться постоянными в течение работы всей программы и не могут быть изменены. Например, если программы выполняет математические операции с использованием числа PI, то было бы оптимально определить данное значение как константу, так как оно все равно в принципе неизменно:
Значение переменной невозможно использовать как константу с
Параметры могут быть константными — значения таких параметров не могут меняться. Константые параметры предваряются ключевым словом const . Например:
#include void square(int); int main() < int number ; square(number); // n * n = 16 > void square(const int n) < //n = n * n; так нельзя сделать std::cout void square(const int n) < .
При объявлении функции - в ее прототипе для параметров, которые передаются по значению, указывать const необязательно
// можно так void square(int); // можно и так void square(const int);
Для параметров, которые передаются по ссылке, указывать const в прототипе обязательно.
Зачем нужны такие константные параметры? Иногда нужно гарантировать, что параметр от начала и до конца функции будет иметь одно и то же начальное значение. Если параметр неконстантный, то есть вероятность, что значение параметра будет случайным образом изменено внутри функции. И даже есть такая рекомендация, что если не планируется явным образом менять значение параметра, то лучше сразу определитть его как константный.
Константному параметру можно передать в качестве аргумента как константу, так и переменную.
От этой ситуации следует отличать передачу констант в качестве аргументов для неконстантных параметров:
Не разрешено назначать значение константе
Константа представляет значение, доступное только для чтения. Эта ошибка имеет следующие причины и способы решения:
- Предпринята попытка присвоить новое значение переменной, объявленной с типом Const, или константе библиотеки типов. Если необходимо присвоить новое значение, объявите обычную переменную с требуемым типом и присвойте желаемое значение этой переменной. Если необходима переменная с ограниченным набором значений, можно объявить перечисление, пользуясь оператором Enum.
Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
Обратная связь
Отправить и просмотреть отзыв по