C언어 = 대입 연산자 vs == 관계 연산자 차이점


C언어 대입 연산자 = 기호는우변을 좌변에 단순 대입합니다. 관계 연산자 == 기호는 좌변과 우변을 비교해서 참(1) 또는 거짓(0)의 결과를 반환합니다.

C언어 = vs == 연산자 차이점

x = y 는 우변 y를 좌변 x에 대입합니다. x == yxy를 비교해서 서로 같으면 참(1), 서로 다르면 거짓(0)을 반환합니다.


연산자 소속 예제 의미
= 대입 연산자 x = y 좌변 x에 우변 y를 단순 대입
== 관계 연산자 x == y 좌변 x와 우변 y를 비교 후 참/거짓 반환

= 대입 연산자 : 단순 대입!

= 기호는 대입 연산자입니다. 대입 연산자는 등호 = 기호를 중심으로 우변을 좌변에 삽입합니다. 따라서 = 연산자는 단순 데이터 삽입에 불과합니다.

#include<stdio.h>
void main() {
	int y = 2; //정수형(int) 자료형 조건의 변수 y를 생성하고 변수값으로 2를 삽입했습니다.
	int x; //정수형(int) 자료형 조건의 변수 x를 생성하고, 변수값은 지정하지 않았습니다.

	x = y; // 대입 연산자 : 우변 y에 들어있는 변수값 2를 좌변 x에 삽입했습니다.

	printf("%d", x); //변수 x를 출력해보면 2가 반환됩니다.
}

결과


2

== 관계 연산자 : 1 또는 0만 반환

== 기호는 관계 연산자 입니다. 관계 연산자는 기호를 중심으로 좌변과 우변을 비교한 다음에 답은 오직 true 또는 false로 두 가지 형태로만 반환됩니다.

#include<stdio.h>
void main() {
	int x = 3;
	int y = 2;

	printf("%d", x == y); // x == y의 의미는 y값을 x값에 삽입하라는 뜻이 아닙니다. x와 y를 비교해서 서로 같으면 참(1), 같지 않으면 거짓(0)을 반환하라는 의미입니다.
}

결과

0

xy는 서로 같지 않으므로 x == y거짓(0)을 반환합니다.