(2019.05.26 수정) 27 Line : a = 0; 28 Line : a++ => ++a 29 Line : a++ => ++a 로 수정이 필요합니다.
연산자
I. 설명
하나 이상의 피연산자에 대해 동작이나 계산을 수행하도록 지시하는 기호
II. 형식
단항이니 산술이니 하는 연산자구분은 필요 없는말 같다. 어짜피 쓰이는건 몇개 안되고, 먼저 연산시키고 싶으면 ( )치면 된다.
(1+(2+(3+(4+5)))) <== 요거 창피하면 외우던지!
아래 표는 그냥 참조만 하면 될듯하다.
* 결합순서는 연산방향 임.
우선 순위 |
연산자 명칭 |
기호 |
결합 순서 |
형식 |
설 명 |
1 |
괄호 함수 |
() |
→ |
a*(b+c) int hamsu(int a) |
괄호 함수 |
배열 |
[] |
char ch[] |
배열 | ||
구조 |
-> |
hap->sum = 10 |
포인터 변수에 의한 항목 선택 | ||
. |
hap.sum = 10 |
구조체 변수에 대한 항목 선택 | |||
산술 |
++ |
a++ |
a값 반환 후 다음번째에 1증가(후위연산) | ||
-- |
a-- |
a값 반환 후 다음번째에 1감소(후위연산) | |||
2 |
논리 |
! |
← |
!(a>b) |
a>b보다 크면 거짓, 작으면 참(부정논리연산) |
비트 |
~ |
a~ |
비트의 보수 연산(101 -> 010) | ||
산술 |
++ |
++a |
a값을 1증가 시킨 후 반환 | ||
-- |
--a |
a값을 1감소 시킨 후 반환 | |||
부호 |
+ |
+a |
양수로 변경(보통 사용 안함) | ||
- |
-a |
음수로 변경, -(-2) = 2 | |||
포인터 |
* |
int *pointer *pointer = 1 |
int형 포인터 변수 가리키는 주소에 1을 대입 | ||
& |
pointer &a |
포인터 변수는 a의 주소값을 가리킴 변수의 주소를 구함(address of) | |||
크기 |
sizeof |
sizeof(int) |
변수 또는 데이터형의 크기 | ||
형변환 |
캐스트 |
(int) a |
다른형의 a를 int타입으로 강제 형변환 | ||
3 |
산술 |
* |
→ |
a * b |
곱하기 |
/ |
a / b |
나누기 | |||
% |
a % b |
a를 b로 나눈 나머지 | |||
4 |
+ |
a + b |
더하기 | ||
- |
a - b |
빼기 | |||
5 |
비트 |
<< |
→ |
a << 1 |
1비트씩 왼쪽으로 이동(오른쪽에 0을 채움) 컴퓨터가 곱셈을 구할때 사용 |
>> |
a >> 1 |
1비트씩 오른쪽으로 이동(왼쪽에 0을 채움) 컴퓨터가 나눗셈을 구할때 사용 | |||
6 |
관계 |
< |
→ |
a < b |
a가 b보다 작으면 참 |
> |
a > b |
a 가 b보다 크면 참 | |||
<= |
a <= b |
a 가 b보다 작거나 같으면 참 | |||
>= |
a >= b |
a가 b보다 크거나 같으면 참 | |||
7 |
== |
a == b |
a가 b와 같으면 참 | ||
!= |
a != b |
a가 b와 같지 않으면 참 | |||
8 |
비트 |
& |
→ |
a & b |
AND 연산 둘다 1이면 1 |
9 |
^ |
a ^ b |
XOR 연산 둘중 하나만 1이면 1 | ||
10 |
| |
a | b |
OR연산 둘중 하나라도 1이면 1 | ||
11 |
논리 |
&& |
→ |
(a>b) && (c>d) |
두 수식이 모두 참이면 참 |
12 |
|| |
(a>b) || (c>d) |
두 수식중 하나만 참이면 참 | ||
13 |
삼항 |
?: |
← |
top = a>b ? a : b |
a가 b보다 크면 top = a, 아니면 top = b |
14 |
대입 |
= |
← |
a = b = c |
c를 b에 대입 후 b를 a에 대입 |
15 |
콤마 |
, |
→ |
int a, b printf("%d,%d",a,b) 등등 |
여러번 정의해야 하는 문장을 한줄에 정의할 때 |
III. 문제
- 다양한 연산자를 활용해 연산결과를 출력하는 프로그램을 작성하라.
IV. 순서도
- 생략
V. 예제
VI. 설명
대략적인 설명은 II.형식과 예제의 주석을 참고(너무 많아서 대부분 패스)
행번호 |
설 명 |
14 |
함수에 (5)를 대입하여 b=(5+5)x2의 값을 리턴받아 출력 – 7.함수(기초) 참조 – |
17~18 |
후위연산은 원래 변수값을 먼저 반환하고 나서 연산 |
22 |
조건부정. 조건값이 맞지 않으면 참 |
26 |
이건 비트반전시 기본으로 int형 값을 반환하기때문에 원하는 자료형으로 캐스팅 |
28~29 |
전위연산은 연산을 먼저 수행 후 결과를 반환 |
31~33 |
sizeof()는 자료형 또는 데이터크기를 byte단위로 반환함 32에서 출력값을 a에 받으면 글자수(22byte) + NULL문자(1byte)로 23byte를 출력함 |
99 |
대입연산은 오른쪽에서 왼쪽으로 대입. ex) int a,b,c,d; a = b = c = d = 0; 모두 0으로 초기화됨 |
VII. 실행결과
VIII. 추가
- 없음
// 끝
'Programming > C' 카테고리의 다른 글
6.C언어_순환문 (0) | 2011.04.18 |
---|---|
5.C언어_조건문 (0) | 2011.04.15 |
3.C언어_상수형 (0) | 2011.04.15 |
2.C언어_변수형 (0) | 2011.04.15 |
1.C언어_기본 구조 (0) | 2011.04.15 |