Definición de Variables en C ++

Танго Estoy en proceso de aprendizaje de estos lenguajes y сын la duda de cuales las diferencias si yo defino una variable y le asigno un parametro карточная игра СИ creo la variable y despues la defino por ejemplo

int variable = 10;

a

int variable;
variable = 10;

tomando esto Комо ejemplo mis чуваки.

  1. Se США el mismo espacio de memoria en el archivo?
  2. Que pasa si el valor que le quiero asignar а-ля переменная доблесть es una variable que no tiene ningun.
  3. Довод "против" Es mejor inicializar la variable доблесть ООН y despues asignar el valor que quiero?
  4. СИ uso unsigned o signed va ocupar menos memoria y va hacer mas rapido el procesamiento?
1
задан 24.01.2017, 09:28
0 ответов

Ответ, в C ++, с Вашей ориентацией в объекты и строители, шире, чем он кажется. К счастью, вопрос ограничивается в int, что является основным типом, без строителя, и облегчает достаточно задание.

C/C ++ отличают между almaceniento автоматический и статическое хранение (в действительности есть больше, но мы limitareamos в вопрос).

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

int a; // Fuera de ninguna función. Estática.

int myfunc( ) {
  static int b; // Dentro del cuerpo, con 'static'. Estática.
  ...
}

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

int myfunc( ) {
  int b; // Dentro del cuerpo, sin 'static'. Automática.
  ...
}

1. То же место памяти используется в файле?

Если, в обоих случаях. Статика инициализируется в 0, если это не делаешь ты с какой-то стоимостью, и автоматические не занимают никакого места.

2. Что происходит, если стоимость, которую я хочу распределить ему в переменную, - переменная, у которой нет никакой стоимости.

Если составитель порядочный, и мы говорим об автоматических переменных, составитель выражает объявление. Он верно законный, и может быть использованным для нескольких вещей (случайные данные). И ассигнование осуществляется правильно, с которым у тебя было бы 2 переменные с неопределенным контентом.

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

3. Лучше инициализировать переменную со стоимостью и после распределять стоимость, которую я хочу?

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

4. Если я использую unsigned, или signed идет занимать меньше памяти и идет делать более быстрой обработку?

Оба изменяющие, не типы. Если ты не показываешь другой тип, он используется int как тип; а именно signed a; он равен в signed int a;. Оба могут использоваться с целыми основными типами: char, short, int, long и, в последнее время, long long. они не могут использоваться с типами в плавающей запятой.

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

4
ответ дан 03.12.2019, 17:32
  • 1
    Действительно declaració n объектов в C ++ darí в для другого добавочного трэда. Я думаю, что лучшее в этом случае состоит в том, чтобы концентрироваться на родных типах, которые то, что на данный момент волнует его. Если мы увеличиваем в объекты тогда ответ podrí чтобы быть почти бесконечным –  23.01.2017, 21:46
  • 2
    Верный. Одинокое индийское перемещенная ; главным образом, ввиду того, что он утверждает изучать , для того, чтобы ограда шаг в шаг , который является длинной дорожкой... и с кривыми. –  23.01.2017, 21:53
  1. То же место памяти используется в файле?

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

  1. Что происходит, если стоимость, которую я хочу распределить ему в переменную, - переменная, у которой нет никакой стоимости.

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

  1. Лучше инициализировать переменную со стоимостью и после распределять стоимость, которую я хочу?

Идеальное состоит в том, чтобы распределять стоимость, объявив переменную. Делать это известно как инициализация.

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

  1. Если я использую unsigned, или signed идет занимать меньше памяти и идет делать более быстрой обработку?

Использование переменной со знаком или без знака у него нет отголоска ни в скорости выполнения ни в размере переменной. Это только будет касаться ранга стоимости, который способен манипулировать переменной.

2
ответ дан 03.12.2019, 17:32

Ответ памяти:
1 Объявив переменную, размести необходимую память, как тип, а следовательно он занимает ту же память ты распределил стоимость или нет.
2 Объявив переменную, не распределяя ничего, Ваша стоимость - то, что содержит размещенную память, может, что "случайная" информация или inicialize в 0, согласно составителю. Так что, если ты распределяешь стоимость не распределенной переменной, смоги оказываться 0 или "случайной" стоимостью.
3 Он главным образом безразличный, ты уберегаешься линия распределяя прямо...
4 Он не занимает меньше памяти, занимает ту же самую, но самый значительный бит будет использован, чтобы показывать знак в случае signed.

1
ответ дан 03.12.2019, 17:32

Теги

Похожие вопросы