(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

+ Recent posts