Что такое точно определения C++, объявления и присвоения?

3 варианта:

  1. изменить сценарий, чтобы переключаться между аргументами 8 и 9. Тогда у вас всегда будет одно и то же число, даже если 9 пусто.
  2. передать аргумент как "" вместо ничего.
  3. измените сценарий так, чтобы вы анализировали свою собственную командную строку и меняли все по своему вкусу.
13
задан Brian Tompsett - 汤莱恩 27 November 2015 в 11:20
поделиться

6 ответов

Определите и объявите, подобны, но присваиваются, очень отличается.

Здесь я объявляю (или определяю), переменная:

int x;

Здесь я присваиваю значение той переменной:

x = 0;

Здесь я делаю обоих в одном операторе:

int x = 0;

Примечание

Не все языки поддерживают объявление и присвоение в одном операторе:

T-SQL

declare x int;
set x = 0;

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

Python

x = 0
9
ответ дан 1 December 2019 в 17:34
поделиться

Определение - то, где значение или функция описаны, т.е. компилятор или программист сказаны точно, что это, например,

int foo()
{
  return 1;
}

int var; // or, e.g. int var = 5; but this is clearer.

, объявление А говорит компилятору или программисту, что функция или переменная существуют. например,

int foo();
extern int var;

присвоение - когда переменная имеет свой набор значений, обычно с = оператор. например,

a = b;
a = foo();
34
ответ дан 1 December 2019 в 17:34
поделиться

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

В c, например:

  • функция может быть , определил только однажды (когда Вы говорите, что она делает), но это может также быть , объявил перед тем (когда Вы говорите, какие аргументы она берет и что вводит ее возвраты).

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

4
ответ дан 1 December 2019 в 17:34
поделиться

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

5
ответ дан 1 December 2019 в 17:34
поделиться

Различия могут казаться тонкими, но они важны. Не каждый язык делает те же различия, но в C++ , объявление переменной делает тип и название переменной известными компилятору

int i;

А , определение переменной выделяет устройство хранения данных и определяет начальное значение для переменной.

i = 1;

можно объединить объявление переменной и определение в один оператор, как обычно делается.

int x = 1;

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

int main()
{
    int a;
    return 0;
}

, Так как переменная a автоматически определяется компилятором, она будет содержать любое значение, был в ячейке памяти, которая была выделена для нее. Поэтому не безопасно использовать автоматические переменные, пока Вы явно не присвоили известное значение им.

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

x = 2;
x++;
x += 4;

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

int doSomething(float x);

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

int doSomething(float x)
{
    if( x < 0 )
    {
        x = -x;
    }
    return static_cast<int>(x);
}

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

2
ответ дан 1 December 2019 в 17:34
поделиться

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

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

-1
ответ дан 1 December 2019 в 17:34
поделиться
Другие вопросы по тегам:

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