Un_Woo
[C] 4. 연산자 본문
연산자
연산자는 값을 계산하거나 비교하는 역할을 합니다.
연산자 | |
대입 연산자 | = |
산술 연산자 | +, -, *, /, % |
비교 연산자 | >, <, >=, <=, ==, != |
논리 연산자 | &&, ||, ! |
할당 연산자 | +=, -=, *=, /=, %= 등 |
참조 연산자 | *, & |
비트 연산자 | &, |, ^, <<, >>, ~ |
C언어는 표와 같은 연산자들을 사용합니다.
대입 연산자
a=1; |
대입 연산자는 변수에 값을 넣는 역할을 합니다.
=을 기준으로 오른쪽에 있는 값을 왼쪽에 있는 변수에 넣습니다.
산술 연산자
산술 연산자는 수학에서 사용하는 연산자들과 비슷합니다.
연산자 | 기능 |
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기(몫) |
% | 나머지 |
num = 12 + 13; //결과 25 num = 12 - 13; //결과 -1 num = 12 * 13; //결과 156 num = 13 / 12; //결과 1 num = 13 % 12; //결과 1 |
/는 몫을, %는 나머지를 구합니다.
산술연산자의 +, - 를 활용한 증감연산자가 있습니다.
'++', '--'를 변수의 앞이나 뒤에 붙이는 연산자입니다.
'++'을 붙이면 1을 더하고, '--'를 붙이면 1을 뺍니다.
증감연산자는 위치에 따라 우선순위가 달라집니다.
a=1, b=0; a++; //a=2 ++b; //b=1 a--; //a=1 --b; //b=0 b=a++; //a=2, b=1 b=a--; //a=1, b=2 b=++a; //a=2, b=2 b=--a; //a=1, b=1 |
증감연산자가 앞에 붙었을 경우 증감 계산 후, 값을 대입합니다.
증감연산자가 뒤에 붙었을 경우 값을 대입 후, 증감 계산을 합니다.
비교 연산자
관계 연산자는 두 값의 크기를 비교하는 연산자입니다.
연산자 | 기능 |
> | 왼쪽이 오른쪽보다 크면 1, 작으면 0 |
< | 왼쪽이 오른쪽보다 크면 0, 작으면 1 |
>= | 왼쪽이 오른쪽보다 크거나 같으면 1, 작으면 0 |
<= | 왼쪽이 오른쪽보다 크면 0, 작거나 같으면 1 |
== | 왼쪽과 오른쪽이 같으면 1, 다르면 0 |
!= | 왼쪽과 오른쪽이 같으면 0, 다르면 1 |
a=1, b=3, c=0; c = a>b; //c=0 c = a<b; //c=1 c = a>=b; //c=0 c = a<=b; //c=1 c = a==b; //c=0 c = a!=b; //c=1 |
C언어에서 0이 아닌 값은 참(True), 0은 거짓(False)로 판단합니다.
이것과 비교연산자는 나중에 조건문이나 반복문에서 활용됩니다.
논리 연산자
논리연산자는 두 값을 논리로 연산하는 연산자입니다.
연산자 | 논리 | 기능 |
&& | AND | 양쪽이 모두 참이면 참 |
|| | OR | 양쪽 중 하나라도 참이면 참 |
! | NOT | 참이면 거짓, 거짓이면 참 |
a=1, b=2, c=0; c = (a<b) && (a<=b); //c=1 c = (a>b) && (a<b); //c=0 c = (a>b) || (a<b); //c=1 c = (a>b) || (b==0); //c=0 c = !(b==22); //c=1 c = !(a<b); //c=0 |
할당 연산자
대입연산과 산술연산을 같이 쓰는 연산자입니다.
연산자 | 기능 |
+= | 왼쪽에 왼쪽 값과 오른쪽 값을 더해 대입 |
-= | 왼쪽에 왼쪽 값에 오른쪽 값을 빼서 대입 |
*= | 왼쪽에 왼쪽 값과 오른쪽 값을 곱해 대입 |
/= | 왼쪽에 왼쪽 값에 오른쪽 값을 나눈 몫을 대입 |
%= | 왼쪽에 왼쪽 값에 오른쪽 값을 나눈 나머지를 대입 |
a=1, b=2; a+=b; //a=3 a-=b; //a=2 a*=b; //a=4 a/=b; //a=2 a%=b; //a=0 |
할당 연산자는 대입연산과 산술연산을 합친 것이기 때문에 나누어 표현할 수도 있습니다.
위의 식의 경우, 다음과 기능이 같습니다.
a = a+b; a = a-b; a = a*b; a = a/b; a = a%b; |
참조 연산자
참조 연산자는 메모리 주소와 관련된 연산자입니다.
연산자 | 기능 |
& | 변수의 메모리 주소 참조 |
* | 메모리 주소에 저장된 값 참조 |
a=1, b=0; b = &a; //a 변수의 메모리 주소가 b에 저장 b = *b; //b에 저장된 메모리 주소가 가리키는 a의 값 저장 |
참조 연산자는 나중에 포인터를 배울 때, 자주 사용하게 됩니다.
지금은 크게 중요하지 않습니다.
비트 연산자
컴퓨터에서 모든 수는 2진수입니다.
01101011000처럼 2진수로 모든 것을 저장합니다.
그리고 2진수의 각 한자리가 1비트입니다.
비트연산자는 비트 단위로 연산하는 연산자입니다.
연산자 | 기능 |
& | 비트 AND 연산 |
| | 비트 OR 연산 |
~ | 비트 NOT 연산 |
^ | 비트 XOR 연산 |
<< | 비트를 왼쪽으로 시프트 |
>> | 비트를 오른쪽으로 시프트 |
a=0b0110, b=0b1011; //변수 앞에 0b를 붙이면 2진수로 저장 c=0; c = a & b; //c = 0b0010 c = a | b; //c = 0b1111 c = ~ a; //c = 0b1001 c = a ^ b; //c = 0b1101 c = a << 2; //c = 0b1000 c = a >> 2; //c = 0b0011 |
XOR 연산은 두 값이 같으면 0이, 다르면 1이 되는 연산입니다.
비트 연산은 비트를 한칸씩 이동시키는 연산입니다.
연산자 우선순위
연산자는 기본적으로 왼쪽에서 오른쪽 순서대로 연산됩니다.
연산자들은 하나의 식에 섞어 쓸 수가 있습니다.
연산자들을 복합적으로 사용할 때에는 수학처럼 우선순위가 적용되어 계산됩니다.
그리고 수학처럼 ()를 사용할 수 있습니다.
{}, []는 사용 불가능합니다.
'Language > C Language' 카테고리의 다른 글
[C] 3. 변수와 상수 (0) | 2021.01.19 |
---|---|
[C] 2. 자료형 (0) | 2021.01.19 |
[C] 1. 코드의 의미 (0) | 2021.01.19 |
[C] 0. Dev-C++ 설치 (0) | 2021.01.19 |