연산자란 수학에서 사용되는 플러스, 마이너스, 곱하기, 나누기 등의 연산기호와 같이 프로그램 내에서 연산을 행하는 기호를 의미한다. c언어에서는 다양한 연산자가 있으며 특히, 다른 프로그래밍 언어에 사용되는 연산자와는 달리 기계 코드의 연산 명령어와 1대1 대응하도록 만들어져 있어서 연산 처리의 실행 속도가 빠르다. 일반적으로 하나의 수식에 여러개의 연산자가 사용될 경우, 이는 연산자의 우선순위에 따라 연산이 실행된다. 따라서 우선순위가 높은 것을 먼저 처리하고, 우선순위가 같을 경우에는 c언어에서 지정한 결합 규칙에 따라 실행된다. 연산자와 피연산자의 예는 다음과 같다.
a+b에서 a와 b는 피연산자이고 플러스는 연산자이다.
연산자의 정해진 우선순위를 꼭 바꾸어야 할 경우 괄호를 사용한다. 어떤 식을 다른 식보다 먼저 처리하려면 괄호를 사용한다. 괄호는 2를 곱하기 전에 먼저 괄호 안의 내용을 계산한다. 이런 경우 곱셈 연산자는 연산을 하기 전에 첫번째 피연산자 (i + 30)이 결정될 때까지 기다려야 한다. 즉, 괄호는 산술 연산의 원래 순서를 바꿀 수 있다. 하나의 수식에 여러 개의 연산자가 사용될 때, 동일한 우선순위의 연산자로 연결된 경우 식을 평가해 가는 순서를 나타내는 것이다. 5 + 10 + 15에서 플러스 연산의 결합 규칙이 좌측에서 우측으로 진행되어 5 + 10을 우선적으로 연산한다. 일반적인 연산자의 결합 규칙이 좌측에서 우측으로 연산되지만 = 등의 연산자는 우측에서 좌측 방향으로 연산을 수행한다. 예를 들어 a = b = c = 1;은 우선적으로 c = 1이 실행되고, 그 다음 b = c가 실행되고 마지막으로 a = b가 실행되어 결국 a = 1이 된다.
이미 앞에서 대입 연산자를 사용해 보았지만 = 대입 연산자는 수학의 개념과는 다르다. 수학에서 = 기호의 개념은 = 좌우의 데이터 값이 같다는 의미이고, c 프로그램에서 대입 연산자의 개념은 우측의 데이터 값을 좌측의 변수에 대입하라는 의미를 갖는다. 대입 연산자는 이항 연산자이고, 두 개의 피연산자가 필요하다. 대입 연산자의 좌변에 있는 변수 i에 우변에 있는 정수형 상수 10이 저장된다. 이때 대입 연산자의 좌변은 반드시 변수이어야 하고, 우변에는 상수, 기호 상수, 변수, 함수 그리고 앞에서 기술한 수식이 있어야 한다. 변수는 대입 연산자를 중심으로 좌,우측 모두 나타낼 수 있는데 좌변에 있는 변수 명은 기억 장소의 주소인 lvalue이고, 대입 연산자 우변에 있는 변수 명은 기억 장소에 저장된 값인 rvalue를 의미한다.
일반적으로 c언어에서 사용되는 연산자는 일반 수학이나 탁상용 계산기에서 사용하는 연산자와 매우 유사하며 그 중에서 산술 연산자가 가장 많이 사용된다. 이는 두 개의 연산 대상 데이터를 산술적으로 계산 처리한다. 두 개의 연산항을 갖는 연산자를 이항연산자라 한다. 이 중에서 사칙 연산자는 임의의 산술형 데이터나 수식을 피연산자로 취하며, 연산 결과는 언제나 정수형 또는 double형이고, 나머지 연산자 퍼센트는 float, double을 제외한 임의의 산술형 데이터나 수식을 피연산자로 취하고, 결과는 언제나 정수형이다. 그리고, 부호 연산자인 플러스와 마이너스는 피연산자로 임의의 산술형 데이터나 수식을 취한다.
'생활정보' 카테고리의 다른 글
변수와 상수 (0) | 2020.11.23 |
---|---|
비트, 바이트, 워드 (0) | 2020.11.21 |
C언어란 무엇인가 (0) | 2020.11.20 |
예비 논문, 자료 검색, 문헌 편람 (0) | 2020.11.20 |
정보탐색은 어떻게 해야될까 (0) | 2020.11.16 |
날조,변조,표절을 하면 안된다 (0) | 2020.11.15 |