728x90
C 언어는 다양한 연산을 사용하고 있습니다. 산술연산자, 관계연산자, 논리연산자, 비트연산자, 대입연산자, 증감연산자, 조건연산자, 포인터연산자 sizeof연산자, 쉐도우 연산자 등 있으며, 이들을 조합하여 복잡한 연산을 수행할 수 있습니다. 각 연산자의 사용법과 우선순위를 이해하는 것이 중요합니다. 이번 포스팅은 연산자들의 종류와 내용을 배우고 기초예시를 보겠습니다.
1. 연산자의 종류와 사용법
- 산술 연산자 : 산술 연산자는 기본적인 수학 연산을 수행합니다.
- +: 덧셈
- -: 뺄셈
- *: 곱셈
- /: 나눗셈
- %: 나머지 연산
- 관계 연산자 : 두 값 간의 관계를 비교합니다.
- ==: 같음
- !=: 같지 않음
- >: 크다
- <: 작다
- >=: 크거나 같다 <=: 작거나 같다
- 논리 연산자 : 논리적 조건을 결합합니다.
- &&: 논리 AND
- ||: 논리 OR
- !: 논리 NOT
- 비트 연산자 : 비트 단위로 연산을 수행합니다.
- &: 비트 AND
- |: 비트 OR
- ^: 비트 XOR
- ~: 비트 NOT
- <<: 비트 왼쪽 시프트
- >>: 비트 오른쪽 시프트
- 복합 대입 연산자 : 값을 변수에 할당합니다.
- = : 단순 대입
- += : 덧셈 후 대입
- -= : 뺄셈 후 대입
- *= : 곱셈 후 대입
- /= : 나눗셈 후 대입
- %= : 나머지 후 대입
- 증감 연산자 : 변수의 값을 증가 또는 감소시킵니다.
- ++ : 1 증가 (전위 및 후위) 예) a=1; a++; a=a+1; a값을 대입 후 증가 a=1
- -- : 1 감소 (전위 및 후위) 예) a=1; a--; a=a-1; a값을 대입후 감소 a=1
- 조건 연산자 (삼항 연산자) : 간단한 조건문을 한 줄로 작성할 수 있게 해 줍니다.
- ? ::(조건)? (참일 때의 값) : (거짓일 때의 값)
- 포인터 연산자 : 포인터와 관련된 연산자를 포함합니다.
- * : 포인터로부터 값 접근
- & : 변수의 주소 얻기
- sizeof 연산자
- sizeof : 데이터 타입이나 변수의 크기를 바이트 단위로 반환합니다.
- 쉐도우 연산자
- , : 여러 표현식을 순차적으로 평가할 때 사용합니다.
2. 연산자 우선순위
기호 및 이름 | 결합규칙 | 순위 | |
( ) : 함수호출 [ ] : 인덱스,배열첨자 . : 멤버참조(dot) ―> : 멤버간접참조 | 좌에서 우로 | 1 | |
& : 주소 =++ : 우위증가 =-- 후위감소 ++= : 전위 증가 --= : 전위 감소 ! : 논리 부정 ~ : 보수 + : 단항+ - : 단항 - sizeof : 크기 *= : 간접참고 |
우에서 좌로 | 2 | |
% : 나머지 * : 곱셈 / : 나눗셈 + : 덧셈 - : 뺄셈 | 좌에서 우로 | 3 | |
<< : 좌시프트 >> : 우 시프트 > : 보다 크다 >= : 이상 < : 보다작다 <= : 이하 | 좌에서 우로 | 4 | |
== : 같다 != : 같지않다 & : 비트곱 ^ : 비트배타적논리합 | : 논립합 && : 논립곱 || : 논립합 | 좌에서 우로 | 5 | |
? : 조건(3항 연산자) = : 대입 연산자 (+=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=) 예) 덧셈 대입 | 우에서 좌로 | 6 | |
, : 순차(콤마) | 좌에서 우로 | 7 |
3. 기초예시
- 증감연산자
#include<stdio.h>
int main(void)
{
int a=10, b=10;
int result;
result = ++a; // a=a+1 실행 후 result=result+a결괏값결과값 11
printf("전위증가 a의 값 : %d\n", result);
result = b++; // b값을 바로 result=result+b 결과값 10
printf("후위증가b의값 : %d\n", result);
return 0;
}
- 복합연산자
#include<stdio.h>
int main(void)
{
int a=10, b=10;
a+=1; // a=a+1 a에 1을 더한 결괏값 11
b*=2; // b=b*2 b에 2를 곱한 결괏값 20
printf("\n");
printf("a = %d b = %d \n", a, b);
return 0;
}
감사합니다.
'프로그램' 카테고리의 다른 글
[C언어]조건 연산자 switch~case문 기초예시 7강 (154) | 2024.09.02 |
---|---|
[C언어]관계, 논리연산자와 조건문(if~else) 기초예시 6강 (226) | 2024.08.27 |
[C언어] 표준입력 scanf 기초예시 4강 (229) | 2024.08.21 |
[C언어] 변수 사용하기 기초예시 3강 (219) | 2024.08.14 |
[C언어] 형식 지정과 비트, 바이트, 이진수 진법 변환 기초예시 2강 (200) | 2024.08.09 |