В чем разница между статической и константной переменными? - PullRequest
58 голосов
/ 07 февраля 2010

Может кто-нибудь объяснить разницу между static и const переменной?

Ответы [ 16 ]

0 голосов
/ 12 сентября 2018

Const означает «нельзя изменить».

Статический означает «статический экземпляр (в памяти) против динамического экземпляра (в стеке.)» Статические переменные существуют на протяжении всей программы. Динамические создаются и уничтожаются по мере необходимости.

Переменная может быть одна или обе.

0 голосов
/ 18 июля 2012
Ключевое слово

static определяет область видимости переменных, а ключевое слово const определяет значение переменной, которое нельзя изменить во время выполнения программы

0 голосов
/ 20 января 2012

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

0 голосов
/ 14 декабря 2010

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

0 голосов
/ 07 февраля 2010

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

0 голосов
/ 07 февраля 2010

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

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

Подробнее о статических переменных см. здесь

...