Что означает «==» в C? - PullRequest
       35

Что означает «==» в C?

6 голосов
/ 28 января 2010

Что означает == и чем оно отличается от =?

Как узнать, какой использовать?

Ответы [ 5 ]

20 голосов
/ 28 января 2010

== - это тест на равенство. = - это задание.

Любая хорошая книга на С должна освещать это (довольно рано в книге, которую я себе представляю).

Например:

int i = 3;                       // sets i to 3.
if (i == 3) printf("i is 3\n");  // prints it.

Просто остерегайтесь гнусного:

if (i = 4) { }

, который является действительным C и часто ловит людей. Фактически присваивает 4 переменной i и использует ее в качестве значения истинности в выражении if. Это заставляет многих людей использовать уродливее, но безопаснее:

if (4 == i) {}

, который, если вы случайно используете = вместо ==, является ошибкой во время компиляции, а не чем-то, что укусит вас в обратную сторону во время работы вашей программы: -)

Логическим оператором или оператором являются два символа вертикальной черты, один за другим , а не один символ. Здесь он выровнен с логическим и и переменной с именем b4:

||
&&
b4

Там нет магии.

11 голосов
/ 28 января 2010

a == b - это тест , если a и b равны.

a = b называется присваиванием , что означает, что переменная a должна иметь то же значение, что и b .

(Вы набираете | с помощью Shift- \ в раскладке клавиатуры США.)

5 голосов
/ 28 января 2010

== проверяет равенство = присваивает значение

ни те, ни другие не относятся к ||

3 голосов
/ 28 января 2010

Я мог бы добавить это на финской и шведской клавиатурах. Символ трубы; |; ИЛИ - это AltGr (правый alt) и <ключ. Если вы используете Mac с другой стороны, это клавиша Alt-7. </p>

Когда я впервые начал печатать на этих клавиатурах, я сильно потел.

2 голосов
/ 28 января 2010

Теперь, когда вы знаете разницу между «==» и «=», позвольте мне сказать вам несколько слов предостережения. Хотя «==» используется в качестве стандартного критерия равенства между сопоставимыми переменными, а «=» используется внутренне присваиваемое типом присваивание, следующая ошибка программирования довольно распространена.

В приведенном ниже примере и аналогичных кодах '=' называется условным оператором " Always true ".

#include<stdio.h>
int main()
{
    int i = 10, j = 20;
    if ( i = j )
        printf("Equal\n");
    else
        printf("NOT Equal\n");
    return 0;
}

Итак, слово предостережения: «Никогда не используйте« = »в if заявлениях, если только в вашем уме нет чего-то злого».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...