Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

전위 증가(++b) vs 후위 증가(b++): C, C++, Java, C# 동작 차이 완벽 정리

프로그래밍 언어에서 전위 증가 연산자(Pre Increment, ++b)후위 증가 연산자(Post Increment, b++)는 모두 변수의 값을 1만큼 증가시키는 연산자입니다. 두 연산자의 핵심적인 차이는 값이 증가되는 시점에 있습니다. 이 글에서는 C, C++, Java, C# 네 가지 언어에서 각 연산자가 어떻게 동작하는지 예제 코드와 함께 자세히 살펴봅니다.

전위 증가 연산자(Pre Increment: ++b)

전위 증가 연산자는 변수의 값을 표현식에서 사용하기 이전에 먼저 증가시킵니다. 즉, 값이 먼저 1 증가한 후, 증가된 값이 표현식 안에서 사용됩니다.

예를 들어 a = ++b;라는 표현식에서 b가 처음에 5를 저장하고 있다면, b가 먼저 6으로 증가한 뒤 그 값이 a에 대입됩니다. 따라서 a에는 6이 저장됩니다.

C++ 예제 코드

#include <iostream>
using namespace std;

int main() {
   int a, b = 15;
   a = ++b;
   cout << a;
   return 0;
}

출력 결과

16

C 예제 코드

#include <stdio.h>

int main() {
   int a, b = 15;
   a = ++b;
   printf("%d", a);
   return 0;
}

출력 결과

16

Java 예제 코드

public class IncDec {
   public static void main(String[] args) {
      int a, b = 15;
      a = ++b;
      System.out.println(a);
   }
}

출력 결과

16

C# 예제 코드

using System;

namespace IncDec {
   class Inc {
      static void Main() {
         int a, b = 15;
         a = ++b;
         Console.WriteLine(a);
      }
   }
}

출력 결과

16

후위 증가 연산자(Post Increment: b++)

후위 증가 연산자는 변수의 값을 표현식에서 사용한 이후에 증가시킵니다. 즉, 현재 값이 먼저 표현식에 적용된 다음, 그 후에 값이 1 증가합니다.

예를 들어 a = b++;라는 표현식에서 b가 처음에 5를 저장하고 있다면, 기존 값 5가 먼저 a에 대입된 후 b가 6으로 증가합니다. 따라서 a는 5, b는 6이 됩니다.

C++ 예제 코드

#include <iostream>
using namespace std;

int main() {
   int a, b = 15;
   a = b++;
   cout << a;
   cout << b;
   return 0;
}

출력 결과

15
16

C 예제 코드

#include <stdio.h>

int main() {
   int a, b = 15;
   a = b++;
   printf("%d\n", a);
   printf("%d\n", b);
   return 0;
}

출력 결과

15
16

Java 예제 코드

public class IncDec {
   public static void main(String[] args) {
      int a, b = 15;
      a = b++;
      System.out.println(a);
      System.out.println(b);
   }
}

출력 결과

15
16

C# 예제 코드

using System;

namespace IncDec {
   class Inc {
      static void Main() {
         int a, b = 15;
         a = b++;
         Console.WriteLine(a);
         Console.WriteLine(b);
      }
   }
}

출력 결과

15
16

정리

a = ++b;(전위 증가)는 b를 먼저 증가시킨 후 a에 대입하므로 a와 b가 모두 같은 값을 가지게 되고, a = b++;(후위 증가)는 기존 값을 먼저 a에 대입한 뒤 b를 증가시키므로 a는 이전 값, b는 증가된 값을 가지게 됩니다. 이러한 동작 방식은 C, C++, Java, C# 어느 언어에서나 동일하게 적용되므로, 반복문이나 조건문에서 증가 연산자를 사용할 때 두 연산자의 차이를 정확히 이해하고 있는 것이 중요합니다.