728x90
반응형
괄호 연산자

 

C언어의 괄호 연산자는 '( )' 로 표현되며, 함수 호출, 표현식 그룹핑, 형 변환 등에 사용됩니다.

 

괄호 연산자는 우선순위를 변경하지 않고 표현식의 일부를 그룹화할 수 있습니다.

예를 들어 'a + b * c'와 같은 표현식에서 'b * c'의 연산이 'a'와 먼저 수행되도록 하려면

'(a + b) * c'와 같이 괄호를 사용하여 그룹화할 수 있습니다.

 

또한 괄호 연산자는 형 변환에서도 사용됩니다.

예를 들어, '(float) a / b'와 같이 괄호 안에 형식을 지정하여 a를 실수형으로 변환하고 나눗셈을 수행할 수 있습니다.

 

또한 괄호 연산자는 함수 호출에서도 사용됩니다.

예를 들어, 'printf("Hello, World\n");'와 같이 함수 이름 뒤에 괄호를 사용하여 함수를 호출 할 수 있습니다.

 

이러한 괄호 연산자의 다양한 용도는 C언어에서 코드를 작성할 때 매우 유용하게 사용됩니다.

 

아래 코드는 C 프로그래밍 언어로 작성한 간단한 예제입니다.

#include <stdio.h>

int main() {
    int a = (10, 20);
    printf("%d, ", a);	//20

    int b = (10, 20, 30);
    printf("%d, ", b);	//30

    int c = (10, (20, 30), 40);
    printf("%d", c);	//40

    return 0;
}

 

코드의 핵심은 괄호 연산자를 사용한 부분입니다.

 

괄호 연산자는 그룹핑 연산자로 연산자 우선순위를 변경하지 않고 표현식의 일부를 그룹화 합니다.

 

첫번째 줄에서는 괄호 안에 있는 쉼표 연산자가 사용되었습니다.

쉼표 연산자는 왼쪽 피연산자를 평가한 후에 오른쪽 피연산자를 평가하고,

마지막으로 오른쪽 피연산자의 값을 반환합니다. 따라서 (10, 20)은 20으로 평가되고, 변수 a에 20이 할당됩니다.

쉼표 연산자(Comma Operator) 는..

C언어에서 사용되는 이항 연산자입니다.
쉼표( , )로 표현되며 왼쪽 피연산자로부터 오른쪽 피연산자까지 차례로 평가하고 마지막 피연산자의 값을 반환합니다.

쉼표 연산자는 변수나 식의 값이 여러 개 일 때, 마지막 값만 반환하고 나머지는 평가만 하고 버리고자 할 때 사용됩니다. 예를 들어, 다음과 같은 코드에서는 a 와 b 모두 출력되지만, 마지막으로 평가된 b만 반환됩니다.

void main() {

	int a = 10;
	int b = 20;

	int result = (printf("a: %d, b %d\n", a, b), b);
	
	printf("a : %d\n", a);	// 10
	printf("result : %d\n", b); // 20
}

또한, 쉼표 연산자는 for 루프에서 초기화, 조건식, 증감식을 한 줄에 작성할 때 유용하게 사용됩니다.

for (int i = 0, j = 10; i < 10; i++, j--)​

하지만 쉼표 연산자는 코드의 가독성을 해치거나 의도하지 않은 부작용을 초래할 수 있으므로, 신중하게 사용해야 합니다.

 

두 번째 줄에서는 괄호 안에 쉼표 연산자가 2개 사용되었습니다.

마찬가지로 왼쪽 피연산자인 10은 무시되고, 중간에 있는 20이 평가되고, 마지막으로 오른쪽  피연산자인 30이 반환됩니다. 변수 b에는 30이 할당 됩니다.

 

세 번째 줄에서는 괄호 안에 쉼표 연산자와 중첩 괄호 연산자가 사용되었습니다.

가장 안쪽에 있는 괄호 부터 평가가 시작됩니다.

(20, 30)이 먼저 평가되어 30이 반환됩니다.

그 다음에는 (10, 30, 40)이 평가되어 40이 반환됩니다. 따라서 c에는 40이 할당됩니다.

728x90
반응형

'Language > C & C++' 카테고리의 다른 글

구조체(Structure)  (0) 2023.04.16
증감 연산자의 응용  (0) 2023.04.15
Function pointer  (0) 2022.11.19
Visual Studio Short-cut  (0) 2022.11.18
memset Function  (0) 2022.10.28

+ Recent posts