c 언어 연산자 - Hwanghyewon06/c- GitHub Wiki
#include <stdio.h>
int main()
{
int n = 10;
int a = 1 + 2;
int b = 10 / 3;
printf("%d %d\n", n, sizeof(n));
printf("%p %d\n", &n, sizeof(&n));
printf("%d\n", a);
printf("%d\n", b);
}
- 코드 분석
int n = 10;
int a = 1 + 2;
int b = 10 / 3;
-
n
: 정수형 변수로 값10
을 초기화. -
a
: 덧셈 연산을 수행하여 값1 + 2 = 3
을 저장. -
b
: 나눗셈 연산을 수행하여 값10 / 3
의 몫3
을 저장(정수 나눗셈이므로 소수점 이하 값은 버려짐)
- 첫 번째 출력:
printf("%d %d\n", n, sizeof(n));
-
%d
: 정수형 데이터를 출력. -
n
의 값10
과sizeof(n)
(정수형 변수의 크기)를 출력합니다.sizeof(n)
는 보통 4바이트(32비트)를 반환합니다.
출력:
10 4
두 번째 출력:
printf("%p %d\n", &n, sizeof(&n));
-
%p
: 메모리 주소를 출력. -
&n
: 변수n
의 메모리 주소를 반환. -
sizeof(&n):
주소값의 크기를 반환하며, 보통 8바이트(64비트 시스템 기준)입니다.
출력 예시:
0x7ffc12345678 8
세 번째 출력:
printf("%d\n", a);
변수 a
의 값을 출력합니다. 값은 3
.
네 번째 출력:
printf("%d\n", b);
변수 b
의 값을 출력합니다. 값은 10 / 3
의 몫 3
.
- 최종 출력 결과
10 4
0x7ffc12345678 8
3
3
#include <stdio.h>
int main()
{
int a = 10;
int b = 3;
b = --a;
// b = a--;
printf(" %d %d\n", a, b);
}
변수 선언 및 초기화:
int a = 10;
int b = 3;
-
a는 10으로 초기화됩니다.
-
b는 3으로 초기화됩니다.
b = --a;
(전위 감소 연산):
--a는 전위 감소 연산자로, a
의 값을 먼저 1
감소시킨 후, 감소된 값을 반환합니다.
즉, a
는 먼저 9
로 감소하고, 감소된 값 9
가 b
에 대입됩니다.
결과:
a = 9
b = 9
주석 처리된 b = a--;
(후위 감소 연산)가 사용되었다면:
a--
는 후위 감소 연산자로, 현재 값을 반환한 뒤에 a
의 값을 1 감소시킵니다.
즉, a
의 값 10
이 b
에 대입되고, 이후 a
는 9
로 감소됩니다.
결과:
a = 9
b = 10
출력문:
printf(" %d %d\n", a, b);
-
a와 b의 값을 순서대로 출력합니다.
-
위의 b = --a;를 기준으로 출력:
9 9
전위(--a)와 후위(a--)의 차이:
--a (전위 감소)
:
먼저 1 감소 → 그 값을 반환.
결과: 감소된 값이 사용됨.
코드에서 b = --a;
를 사용하면
출력 결과
9 9
b = a--;
로 변경하면 출력은 다음과 같습니다
9 10
a-- (후위 감소)
:
현재 값을 반환 → 그 후 1 감소.
결과: 감소 전 값이 사용됨.
#include <stdio.h>
int main()
{
// 산술 연산자
int a = 10;
int b = 3;
printf("%d\n", a + b);
printf("%d\n", a - b);
printf("%d\n", a * b);
printf("%d\n", a / b);
printf("%d\n", a % b);
}
printf
를 이용한 산술 연산 결과 출력:
- 덧셈 연산
(a + b)
:
a
와 b
를 더한 값 출력: 10 + 3 = 13
출력: 13
- 뺄셈 연산
(a - b)
:
a
에서 b
를 뺀 값 출력: 10 - 3 = 7
출력: 7
- 곱셈 연산
(a * b)
:
a
와 b
를 곱한 값 출력: 10 * 3 = 30
출력: 30
- 나눗셈 연산
(a / b)
:
a
를 b
로 나누어 몫을 출력(정수 나눗셈): 10 / 3 = 3
(소수점 이하 버림)
출력: 3
- 나머지 연산
(a % b)
:
a
를 b
로 나누었을 때의 나머지 출력: 10 % 3 = 1
출력: 1
산술 연산자 역할:
-
+
(덧셈): 두 값을 더합니다. -
-
(뺄셈): 첫 번째 값에서 두 번째 값을 뺍니다. -
*
(곱셈): 두 값을 곱합니다. -
/
(나눗셈): 첫 번째 값을 두 번째 값으로 나누어 몫을 반환합니다. -
%
(나머지): 첫 번째 값을 두 번째 값으로 나누었을 때 나머지를 반환합니다.
#코드 비교연산자
#include <stdio.h>
int main()
{
int a = 10;
int b = 3;
printf("%d\n", a == b); // a와 b가 같은지 비교
printf("%d\n", a != b); // a와 b가 같지 않은지 비교
printf("%d\n", a <= b); // a가 b보다 작거나 같은지 비교
printf("%d\n", a >= b); // a가 b보다 크거나 같은지 비교
printf("%d\n", a > b); // a가 b보다 큰지 비교
printf("%d\n", a < b); // a가 b보다 작은지 비교
}
코드 실행 결과:
a == b
:
a와 b가 같은지 비교. 결과: 0 (거짓, 10 != 3).
출력: 0
a != b:
a
와 b
가 같지 않은지 비교. 결과: 1
(참, 10 != 3
).
출력: 1
a <= b:
a가 b보다 작거나 같은지 비교. 결과: 0 (거짓, 10 > 3).
출력: 0
a >= b
:
a
가 b
보다 크거나 같은지 비교. 결과: 1
(참, 10 > 3
).
출력: 1
a > b
:
a
가 b
보다 큰지 비교. 결과: 1
(참, 10 > 3
).
출력: 1
a < b
:
a
가 b
보다 작은지 비교. 결과: 0 (거짓, 10 > 3
).
출력: 0
최종 출력 결과:
0
1
0
1
1
0
#include <stdio.h>
int main()
{
// 논리 연산자(값)
int a = 1;
int b = 0;
printf("%d\n", a && b); // and
printf("%d\n", a || b); // or
printf("%d\n", !a); // not
printf("%d\n", !b); // not
}
코드 설명:
변수 초기화:
int a = 1;
int b = 0;
a = 1
: 논리적으로 참(1)을 나타냅니다.
b = 0
: 논리적으로 거짓(0)을 나타냅니다.
논리 연산자 사용:
- && (AND):
printf("%d\n", a && b);
두 값이 모두 참일 경우에만 결과가 참(1)이 됩니다.
a = 1
(참)이고, b = 0
(거짓)이므로 결과는 거짓(0).
출력: 0
|| (OR):
printf("%d\n", a || b);
두 값 중 하나라도 참이면 결과가 참(1)이 됩니다.
a = 1
(참)이므로 결과는 참(1).
출력: 1
! (NOT) - a:
printf("%d\n", !a);
값을 뒤집습니다: 참(1) → 거짓(0).
a = 1
이므로 결과는 거짓(0).
출력: 0
! (NOT) - b:
printf("%d\n", !b);
값을 뒤집습니다: 거짓(0) → 참(1).
b = 0
이므로 결과는 참(1).
출력: 1
최종 출력 결과:
이 코드를 실행하면 다음과 같은 출력이 나타납니다:
0
1
0
1
- 요약
&&
(AND): 두 조건이 모두 참이면 1(참).
||
(OR): 두 조건 중 하나라도 참이면 1(참).
!
(NOT): 참을 거짓으로, 거짓을 참으로 뒤집습니다