..

Search

17) 기타 연산자

17) 기타 연산자

기타 연산자


삼항 연산자(ternary operator)

삼항 연산자는 다른 언어에는 존재하지 않는 C언어만의 독특한 연산자입니다.

이 연산자는 C언어에서도 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다.

 

삼항 연산자의 문법은 다음과 같습니다.

문법

조건식 ? 반환값1 : 반환값2

 

물음표(?) 앞의 조건식에 따라 결괏값이 참(true)이면 반환값1을 반환하고, 결괏값이 거짓(false)이면 반환값2를 반환합니다.

이때 반환값에는 값뿐만 아니라 수식, 함수 호출 등 여러 가지 형태의 명령문이 올 수 있습니다.

 

예제

int num01 = 15;

int num02 = 8;

int result;  

 

result = (num01 > num02) ? num01 : num02;

printf("둘 중에 더 큰수는 %d입니다.\n", result);  

코딩연습 ▶

실행 결과

둘 중에 더 큰수는 15입니다.

 

삼항 연산자는 짧은 if / else 문 대신에 사용할 수 있으며, 코드를 간결하게 작성할 수 있도록 도와줍니다.

if / else 문에 대한 더 자세한 사항은 C언어 조건문 수업에서 확인할 수 있습니다.

 

C언어 조건문 수업 확인 =>


쉼표 연산자

쉼표(,) 연산자는 얼핏 연산자가 아닌 것처럼 보이지만 다양한 용도로 사용되는 연산자입니다.

이 연산자는 어떠한 연산을 수행하는 것이 아니라 다음과 같은 상황에서 사용됩니다.

 

 - 두 연산식을 하나의 연산식으로 나타내고자 할 때

 - 둘 이상의 인수를 함수로 전달하고자 할 때

 

예제

 

int num01 = 15, num02 = 8;

printf("첫 번째 수는 %d이고, 두 번째 수는 %d입니다.\n", num01, num02);  

 

코딩연습 ▶

실행 결과

첫 번째 수는 15이고, 두 번째 수는 8입니다.

 

위의 예제에서 쉼표 연산자는 둘 이상의 변수를 동시에 선언하기 위해서 사용되었습니다.

또한, printf() 함수에서는 둘 이상의 인수를 동시에 printf() 함수로 전달하기 위해서 사용되었습니다.


sizeof 연산자

사용자의 컴퓨터 환경에 따라 타입에 할당되는 메모리의 크기가 달라질 수 있습니다.

sizeof 연산자는 단항 연산자로 피연산자의 크기를 바이트 단위로 반환합니다.

이 연산자는 피연산자로 타입뿐만 아니라 변수나 상수를 전달받을 수도 있습니다.

sizeof 연산자에 변수나 상수가 피연산자로 전달되면, 해당 변수나 상수에 해당하는 타입의 크기를 반환해 줍니다.

예제

int num01 = 15;

int num02 = 8;

int result;  

 

result = (num01 > num02) ? num01 : num02;

printf("둘 중에 더 큰수는 %d입니다.\n", result);

코딩연습 ▶

실행 결과

둘 중에 더 큰수는 15입니다.

 

sizeof 연산자를 통해 현재 여러분이 사용하는 컴퓨터 환경에서의 타입 크기를 알아볼 수 있습니다.

포인터 연산자

C언어에서 포인터와 연관되어 사용되는 연산자는 다음과 같습니다.

 

1. 주소 연산자(&)

2. 참조 연산자(*)

 

주소 연산자(&)는 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환합니다.

'&'기호는 앰퍼샌드(ampersand)라고 읽으며, 번지 연산자라고도 불립니다.

 

참조 연산자(*)는 포인터의 이름이나 주소 앞에 사용하여, 포인터에 가리키는 주소에 저장된 값을 반환합니다.

 

C언어에서 '*'기호는 사용하는 위치에 따라 다양한 용도로 사용됩니다.

이항 연산자로 사용하면 곱셈 연산으로 사용되며, 포인터의 선언 시나 메모리에 접근할 때도 사용됩니다.

 

포인터 연산자에 대한 더 자세한 사항은 C언어 포인터 수업에서 확인할 수 있습니다.

 

C언어 포인터 수업 확인 =>


연습문제