C에서의 대입 연산자

안녕하세요, 미래의 프로그래머 여러분! 오늘은 C에서의 대입 연산자에 대해 탐험해볼 거예요. 아직 코드를 한 줄도 작성해보지 않았다고 해도 걱정 마세요 – 저는 여러분을 이 여정을 단계별로 안내할 거예요. 이 튜토리얼을 끝내면, 여러분도 전문가처럼 값을 대입할 수 있게 될 거예요!

C - Assignment Operators

대입 연산자란 무엇인가요?

공중에서 뛰어들기 전에, 대입 연산자가 무엇인지 이해해보죠. 그들은 우리가 수학 수업에서 사용한 등호 기호(=)와 비슷하지만, 슈퍼파워를 가진 것이에요! 그들은 여러분의 프로그램에서 변수에 값을 대입하는 데 사용됩니다. 하지만 C에서는 단순한 대입 이상의 것을 할 수 있어요.

단순 대입 연산자 (=)

기본적인 것부터 시작해볼게요 – 단순 대입 연산자. 그것은 C에서의 모든 대입 연산의 기초예요.

어떻게 동작하는지

단순 대입 연산자는 등호 기호(=)로 표현됩니다. 오른쪽의 값을 가져와 왼쪽의 변수에 대입합니다.

다음은 간단한 예시입니다:

int age;
age = 25;

이 코드에서는 age라는 정수 변수를 선언한 후, 그 변수에 25를 대입하는 것이에요. 그렇게 간단해요!

다중 대입

또한 대입을 함께 연결할 수 있어요. 예를 들어보죠:

int x, y, z;
x = y = z = 10;

이 코드는 값을 10으로 모두 세 변수에 대입합니다: x, y, 그리고 z. 오른쪽에서 왼쪽으로 작동하기 때문에, 먼저 z에 10이 대입되고, 그 다음 y에 z의 값(즉, 10)이 대입되고, 마지막으로 x에 y의 값(도 10)이 대입됩니다.

변수 초기화

변수를 선언할 때에도 대입 연산자를 사용할 수 있어요:

int height = 180; // 선언과 초기화를 한 줄에
float pi = 3.14159;
char grade = 'A';

이것은 변수를 생성할 때 초기 값을 설정하는 데 훌륭한 방법이에요.

강화 대입 연산자

이제 한 단계 더 올려볼게요! 강화 대입 연산자는 단축코드 같아요. 그들은 한 단계에 수행 연산과 대입을 함께 합니다. 하나씩 살펴보죠:

더하기 대입 (+=)

+= 연산자는 오른쪽 피연산자를 왼쪽 피연산자에 더하고, 결과를 왼쪽 피연산자에 대입합니다.

int score = 10;
score += 5; // score = score + 5;와 동일
printf("Score: %d\n", score); // 출력: Score: 15

빼기 대입 (-=)

-= 연산자는 오른쪽 피연산자를 왼쪽 피연산자에서 뺀 후, 결과를 왼쪽 피연산자에 대입합니다.

int lives = 3;
lives -= 1; // lives = lives - 1;와 동일
printf("Lives remaining: %d\n", lives); // 출력: Lives remaining: 2

곱하기 대입 (*=)

*= 연산자는 왼쪽 피연산자를 오른쪽 피연산자로 곱하고, 결과를 왼쪽 피연산자에 대입합니다.

int power = 2;
power *= 3; // power = power * 3;와 동일
printf("Power level: %d\n", power); // 출력: Power level: 6

나누기 대입 (/=)

/= 연산자는 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후, 결과를 왼쪽 피연산자에 대입합니다.

float money = 100.0;
money /= 2; // money = money / 2;와 동일
printf("Money left: %.2f\n", money); // 출력: Money left: 50.00

나머지 대입 (%=)

%= 연산자는 왼쪽 피연산자가 오른쪽 피연산자로 나눌 때의 나머지를 계산하고, 결과를 왼쪽 피연산자에 대입합니다.

int cookies = 10;
cookies %= 3; // cookies = cookies % 3;와 동일
printf("Leftover cookies: %d\n", cookies); // 출력: Leftover cookies: 1

비트 AND 대입 (&=)

&= 연산자는 비트 AND 연산을 수행하고, 결과를 왼쪽 피연산자에 대입합니다.

int a = 5; // 2진수: 0101
a &= 3;    // 2진수: 0011
printf("Result: %d\n", a); // 출력: Result: 1

비트 OR 대입 (|=)

|= 연산자는 비트 OR 연산을 수행하고, 결과를 왼쪽 피연산자에 대입합니다.

int b = 5; // 2진수: 0101
b |= 3;    // 2진수: 0011
printf("Result: %d\n", b); // 출력: Result: 7

비트 XOR 대입 (^=)

^= 연산자는 비트 XOR 연산을 수행하고, 결과를 왼쪽 피연산자에 대입합니다.

int c = 5; // 2진수: 0101
c ^= 3;    // 2진수: 0011
printf("Result: %d\n", c); // 출력: Result: 6

왼쪽 시프트 대입 (<<=)

<<= 연산자는 왼쪽 시프트 연산을 수행하고, 결과를 왼쪽 피연산자에 대입합니다.

int d = 5; // 2진수: 0101
d <<= 1;   // 왼쪽으로 1 시프트
printf("Result: %d\n", d); // 출력: Result: 10

오른쪽 시프트 대입 (>>=)

>>= 연산자는 오른쪽 시프트 연산을 수행하고, 결과를 왼쪽 피연산자에 대입합니다.

int e = 8; // 2진수: 1000
e >>= 1;   // 오른쪽으로 1 시프트
printf("Result: %d\n", e); // 출력: Result: 4

대입 연산자 요약 표

다음은 우리가 다룬 모든 대입 연산자를 요약한 편리한 표입니다:

연산자 설명 예시 동일한 것
= 단순 대입 x = 5; x = 5;
+= 더하기 대입 x += 3; x = x + 3;
-= 빼기 대입 x -= 3; x = x - 3;
*= 곱하기 대입 x *= 3; x = x * 3;
/= 나누기 대입 x /= 3; x = x / 3;
%= 나머지 대입 x %= 3; x = x % 3;
&= 비트 AND 대입 x &= 3; x = x & 3;
|= 비트 OR 대입 x |= 3; x = x | 3;
^= 비트 XOR 대입 x ^= 3; x = x ^ 3;
<<= 왼쪽 시프트 대입 x <<= 2; x = x << 2;
>>= 오른쪽 시프트 대입 x >>= 2; x = x >> 2;

그리고 이것이 모두에요! 여러분은 C에서의 대입 연산자에 대한 환상적인 여행을 마쳤어요. 기억해요, 연습이 열쇠예요. 이 연산자들을 사용하여 코드를 써보고, 곧 무의미하게 사용할 수 있을 거예요.

코딩을 즐겁게, 미래의 C 프로그래머 여러분!

Credits: Image by storyset