[C] C언어 공부하기 5.연산자

2020. 1. 2. 13:57C,C++

출처 : http://www.soen.kr/

 

SoEn:소프트웨어 공학 연구소

 

www.soen.kr

5-3-가. 삼항 조건 연산자

 

삼항 조건 연산자는 특이하게도 피연산자를 세 개나 가지는데 다른 언어에는 없는 C언어의 독특한 연산자이다. 기본 형식은 다음과 같다.

 

(조건식) ? 1:2

 

. 이 연산자는 조건식을 평가해 보고 참이면 값1을 리턴하고 거짓이면 값2를 리턴한다.

 

8-3-나. 쉼표 연산자

쉼표 연산자는 쉼표 기호(,)를 사용하는데 모양만으로 보면 구두점같이 생겨서 연산자가 아닌 것처럼 보이기도 한다. 하지만 분명히 연산자이다

 좌변을 먼저 평가하고 우변을 평가한 후 우변의 연산 결과를 리턴한다. 쉼표 연산자는 어떤 연산을 한다기보다는 두 연산식을 하나로 묶는 역할만 한다

 

j=(i=3,i+2);

좌변을 먼저 평가하므로 쉼표 연산자는 우선 i=3 대입문을 실행한다. 그리고 i+2를 평가한 후 그 결과를 리턴하는데 i가 먼저 3이 되었으므로 쉼표 연산문의 전체 결과는 3+2=5가 되어 j에 5가 대입될 것이다

 

쉼표 연산자는 모든 연산자들 중에 우선 순위가 가장 늦다

 쉼표 연산자가 반드시 필요한 경우는 { }의 도움없이 두 개 이상의 문장을 하나로 묶어야 할 때와 for문에서 제어 변수 두 개를 사용하고자 할 때이다. 

void main()

{

     int i,j;

 

     for (i=1,j=1;i<5;i++,j+=2) {

          printf("i=%d",i);

          printf(",j=%d\n",j);

     }

}

 

5-3-라. 캐스트 연산자

캐스트 연산자는 수식내에서 변수의 타입을 강제로 다른 타입으로 바꾼다.

 

(타입)변수

타입(변수)

 

C 형식은 변수앞에 괄호를 쓰고 괄호안에 원하는 타입을 지정하며 C++ 형식은 타입을 먼저 쓰고 괄호안에 변수를 쓴다.