c programming seminar

54
C Programming Seminar 여여 여여 여여여

Upload: schuyler

Post on 20-Mar-2016

43 views

Category:

Documents


2 download

DESCRIPTION

C Programming Seminar. 여러 가지 연산자. 연산자 (Operator) 의 의미 계산 ( 연산 ) 할 때 사용하는 기호를 뜻한다 . 좀 더 구체적으로 말하면 연산자는 연산 즉 , 계산을 할 때 사용하는 기호를 말하는 것으로 우리가 일상에서 사용하 는 사칙연산과 논리 연산자 , 비트연산자 등이 있다. 여러 가지 연산자. 산술 연산자 +, -, *, /,% 산술 연산자 (arithmetic Operator) 는 산술식에 사용하는 연산자로 일반적인 수학공식에서 사용하는 사칙연산자와 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: C  Programming  Seminar

C Programming

Seminar

여러 가지 연산자

Page 2: C  Programming  Seminar

여러 가지 연산자연산자 (Operator) 의 의미계산 ( 연산 ) 할 때 사용하는 기호를 뜻한다 .좀 더 구체적으로 말하면 연산자는 연산 즉 , 계산을 할 때사용하는 기호를 말하는 것으로 우리가 일상에서 사용하는 사칙연산과 논리 연산자 , 비트연산자 등이 있다 .

Page 3: C  Programming  Seminar

여러 가지 연산자산술 연산자 +, -, *, /,%

산술 연산자 (arithmetic Operator) 는 산술식에 사용하는

연산자로 일반적인 수학공식에서 사용하는 사칙연산자와기능이 같다 .산술 연산자는 정수형이나 실수형 등의 숫자를 계산할 때사용하지만 문자형 등을 계산할 때도 자주 사용한다 .또한 , 사칙연산 외의 연산자로 나머지 연산자 (%) 가 있다 .나머지 연산자는 float, double 에서는 사용하지 않는다 .

Page 4: C  Programming  Seminar

여러 가지 연산자

산술 연산자 실습#include <stdio.h>

void main(){

int Number1=0, Number2=0, Number3=0, Number4=0, Number5=0;

Number1=5+2;Number2=5-2;Number3=5*2;Number4=5/2;Number5=5%2;

printf("Number1=5+2 의 값은 %d\n", Number1);printf("Number2=5-2 의 값은 %d\n", Number2);printf("Number3=5*2 의 값은 %d\n", Number3);printf("Number4=5/2 의 값은 %d\n", Number4);printf("Number5=5%%2 의 값은 %d\n", Number5);

}

Page 5: C  Programming  Seminar

여러 가지 연산자

산술 연산자 실습#include <stdio.h>

void main(){

int Number1=0, Number2=0, Number3=0, Number4=0, Number5=0;

Number1=5+2;Number2=5-2;Number3=5*2;Number4=5/2;Number5=5%2;

printf("Number1=5+2 의 값은 %d\n", Number1);printf("Number2=5-2 의 값은 %d\n", Number2);printf("Number3=5*2 의 값은 %d\n", Number3);printf("Number4=5/2 의 값은 %d\n", Number4);printf("Number5=5%%2 의 값은 %d\n", Number5);

}

Page 6: C  Programming  Seminar

여러 가지 연산자대입 연산자 =, +=, -=, *=, /=, %=

대입 연산자 (assignment operator) 는 오른쪽 피연산자의

내용을 연산자 왼쪽의 피연산자에 대입시키는 연산자이다 .대입은 다른 말로 치환이라고 한다 . 주로 왼쪽의 피연산자는 각종 변수나 , 배열 요소 , 구조체 멤버 , 포인터의

대상체등이 된다 .

Page 7: C  Programming  Seminar

여러 가지 연산자대입 연산자

연산자 기호 의미= 오른쪽의 값을 왼쪽에 대입

+= 왼쪽의 값에 오른쪽의 값을 더한 뒤에 다시 왼쪽의 피연산자에 대입

-= 왼쪽의 값에 오른쪽의 값을 뺀 뒤에 다시 왼쪽의 피연산자에 대입

*= 왼쪽의 값에 오른쪽의 값을 곱한 뒤에 다시 왼쪽의 피연산자에 대입

/= 왼쪽의 값에 오른쪽의 값을 나눈 뒤에 다시 왼쪽의 피연산자에 대입

%= 왼쪽의 값에 오른쪽의 값을 나눈 나머지를 다시 왼쪽의 피연산자에 대입

Page 8: C  Programming  Seminar

여러 가지 연산자대입 연산자 =, +=, -=, *=, /=, %=

대입 연산자는 다중 대입이 가능하다 .

a=b=c=1;a=(b=(c=1)+2)+3);a=b=c=d=5;c=(b=(a=5)+4)+3;

Page 9: C  Programming  Seminar

여러 가지 연산자대입 연산자의 특징① 연산자 오른쪽의 값을 연산자 왼쪽에 대입시키는 연산 자이다 .② 왼쪽의 피연산자는 대입이 가능한 변수 계열이어야 한 다 . 이를 좌변 값 (left value) 이라고 부른다 .③ 오른쪽의 피연산자는 어떤 수식이라도 사용 가능하다④ 결합 방향은 오른쪽에서 왼쪽이다 .⑤ 연산 순위가 낮은 편이다 .⑥ 다중 대입이 가능하다 .

Page 10: C  Programming  Seminar

여러 가지 연산자

대입 연산자 실습#include <stdio.h>

void main(){

int Lucky=7;printf("Lucky 의 값은 %d\n", Lucky);Lucky += 2;printf("Lucky +=2 의 값은 %d\n", Lucky);Lucky = 7;Lucky -= 2;printf("Lucky -=2 의 값은 %d\n", Lucky);Lucky = 7;Lucky *= 2;printf("Lucky *=2 의 값은 %d\n", Lucky);Lucky = 7;Lucky /= 2;printf("Lucky /=2 의 값은 %d\n", Lucky);Lucky = 5;Lucky %= 2;printf("Lucky %%=2 의 값은 %d\n", Lucky);

}

Page 11: C  Programming  Seminar

여러 가지 연산자

대입 연산자 실습#include <stdio.h>

void main(){

int Lucky=7;printf("Lucky 의 값은 %d\n", Lucky);Lucky += 2;printf("Lucky +=2 의 값은 %d\n", Lucky);Lucky = 7;Lucky -= 2;printf("Lucky -=2 의 값은 %d\n", Lucky);Lucky = 7;Lucky *= 2;printf("Lucky *=2 의 값은 %d\n", Lucky);Lucky = 7;Lucky /= 2;printf("Lucky /=2 의 값은 %d\n", Lucky);Lucky = 5;Lucky %= 2;printf("Lucky %%=2 의 값은 %d\n", Lucky);

}

Page 12: C  Programming  Seminar

여러 가지 연산자부호 연산자 +, -

부호 연산자는 수치형 자료의 부호를 바꿀 때 사용하는 연산자이다 . 사실 부호 연산자는 연산자라고 말하기 어려운 연산자이다 . ‘+’ 기호를 붙이면 양수가 되고 , ‘-’ 기호를

붙이면 음수가 된다는 사실은 누구나 아는 사실이기 때문이다 .

Page 13: C  Programming  Seminar

여러 가지 연산자부호 연산자의 특징① 피연산자는 산술형 자료나 수식이어야 한다 .

② 결합 방향은 오른쪽에서 왼쪽이다 .

Page 14: C  Programming  Seminar

여러 가지 연산자

부호 연산자 실습#include <stdio.h>

void main(){

int Number1=5, Number2=5, Number3=5, Number4=5;

Number1 = +(-Number1);Number2 = -(+Number2);Number3 = +-Number3;Number4 = -+Number4;

printf("Number1 = %d, Number2 = %d\n", Number1, Number2);printf("Number3 = %d, Number4 = %d\n", Number3, Number4);

}

Page 15: C  Programming  Seminar

여러 가지 연산자

부호 연산자 실습#include <stdio.h>

void main(){

int Number1=5, Number2=5, Number3=5, Number4=5;

Number1 = +(-Number1);Number2 = -(+Number2);Number3 = +-Number3;Number4 = -+Number4;

printf("Number1 = %d, Number2 = %d\n", Number1, Number2);printf("Number3 = %d, Number4 = %d\n", Number3, Number4);

}

Page 16: C  Programming  Seminar

여러 가지 연산자증감 연산자 ++, --

증감 연산자는 피연산자의 값을 하나씩 , 즉 1 씩 증가시키

거나 감소시키는 일을 한다 .연산자 기호 의미

++ 증가 (increment) 연산자로 , 피연산자의 값을 하나씩 증가시킨다 .

-- 감소 (decrement) 연산자로 , 피연산자의 값을 하나씩 감소시킨다 .

Page 17: C  Programming  Seminar

여러 가지 연산자Question

그러면 증감 연산자가 없어도 프로그램을 만드는데 어려움이 없는 것은 아닐까 ? Number=Number+1 이라고

쓰면되는 것을 왜 증감 연산자를 만들어 Number++ 이라고

표기하는 것일까 ?

Page 18: C  Programming  Seminar

여러 가지 연산자1. 프로그램을 이해하기 쉽기 때문이다 . - Number++ 라고 쓰는 것이 Number=Number+1 이라 고 쓰는것보다 보기에 편하고 이해하기 편하다 .

2. 연산 속도가 빠르기 때문이다 . - 증감 연산자의 효율성이 기계어 명령에 가깝기 때문이다 . 즉 Number++ 는 변수 Number 의 번지에 대입된 값을 1 만 증가시키면 된다 . 하지만 Number=Number+1 은 수식이기 때문에 효율적인 설계가 불가능하다 . Number 의 번지에 대입된 값에 1 을 더하는 더하기 연산을 수행한 후에 이 결 과를 대입 연산자를 통해 대입하는 연산을 해야 하기 때문 이다 .

Page 19: C  Programming  Seminar

여러 가지 연산자증감 연산자의 또 다른 특징을 보면 피연산자의 왼쪽에 붙느냐 오른쪽에 붙느냐에 따라서 전위형 (prefix type) 이냐 후위형 (postfix type) 이냐로 구분하며 유형에 따라 연산

결과가 달라진다 .연산자 기호 의미

++Number Number 의 값을 먼저 1 증가시키고 다른 연산을 한다 .Number++ Number 의 값으로 다른 연산을 한 뒤에 1 증가시킨다 .--Number Number 의 값을 먼저 1 감소시키고 다른 연산을 한다 .Number-- Number 의 값으로 다른 연산을 한 뒤에 1 감소시킨다 .

Page 20: C  Programming  Seminar

여러 가지 연산자증감 연산자의 특징① 피연산자는 변수와 같은 산술형 자료이어야 하며 수식 은 사용할 수 없다 .② 전위형과 후위형이 있으며 전위형 , 후위형의 사용

여부 에 따라 연산 결과가 달라진다 .③ 결합 방향은 오른쪽에서 왼쪽이다 .

Page 21: C  Programming  Seminar

여러 가지 연산자

증감 연산자 실습#include <stdio.h>

void main(){

int First=1, Second=2;printf("First=%d\nSecond=%d\n\n", First,Second);

First=++Second*3;printf("First=++Second*3 의 값은 %d\n", First);printf(" 계산한 결과 Second 의 값은 %d\n\n", Second);

First=1;Second=2;

First=Second++*3;printf("First=Second++*3 의 값은 %d\n", First);printf(" 계산한 결과 Second 의 값은 %d\n\n", Second);

}

Page 22: C  Programming  Seminar

여러 가지 연산자

증감 연산자 실습#include <stdio.h>

void main(){

int First=1, Second=2;printf("First=%d\nSecond=%d\n\n", First,Second);

First=++Second*3;printf("First=++Second*3 의 값은 %d\n", First);printf(" 계산한 결과 Second 의 값은 %d\n\n", Second);

First=1;Second=2;

First=Second++*3;printf("First=Second++*3 의 값은 %d\n", First);printf(" 계산한 결과 Second 의 값은 %d\n\n", Second);

}

Page 23: C  Programming  Seminar

여러 가지 연산자관계 연산자 <, <=, >, >=, ==, !=

관계 연산자 (relational operator) 는 왼쪽의 피연산자와 오

른쪽의 피연산자의 순위나 크기를 비교할 때 사용한다 . <, <=, >, >=, ==, != 등이 사용되는데 , 이 중에서도 == 과 != 는 상등 (equality) 연산자라고 따로 부른다 .

Page 24: C  Programming  Seminar

여러 가지 연산자

연산자 기호 의미Number1<Number2 Number1 의 값이 Number2 의 값보다 작다 .

Number1<=Number2 Number1 의 값이 Number2 의 값보다 작거나 같다 .Number1>Number2 Number1 의 값이 Number2 의 값보다 크다 .

Number1>=Number2 Number1 의 값이 Number2 의 값보다 크거나 같다 .Number1==Number2 Number1 의 값이 Number2 의 값과 같다 .Number1!=Number2 Number1 의 값이 Number2 의 값과 다르다 .

관계 연산자

Page 25: C  Programming  Seminar

여러 가지 연산자관계 연산자의 특징① 피연산자는 변수와 같은 산술형 자료나 수식이다 .② 연산 결과는 0 또는 1 의 정수형이다 .③ 피연산자의 자료형을 일치시켜야 정확한 결과를 얻는 다 .④ 결합 방향은 오른쪽이다 .

Page 26: C  Programming  Seminar

여러 가지 연산자

관계 연산자 실습#include <stdio.h>

void main(){

float Root=1.41, Pi=3.14;int Number=7, Lucky=7;

printf("%1.2f>%1.2f 의 결과 %d\n", Root, Pi, Root>Pi);printf("%1.2f<%1.2f 의 결과 %d\n", Root, Pi, Root<Pi);printf("%d==%d 의 결과 %d\n", Number, Lucky, Number==Lucky);printf("%d!=%d 의 결과 %d\n", Number, Lucky, Number!=Lucky);

}

Page 27: C  Programming  Seminar

여러 가지 연산자

관계 연산자 실습#include <stdio.h>

void main(){

float Root=1.41, Pi=3.14;int Number=7, Lucky=7;

printf("%1.2f>%1.2f 의 결과 %d\n", Root, Pi, Root>Pi);printf("%1.2f<%1.2f 의 결과 %d\n", Root, Pi, Root<Pi);printf("%d==%d 의 결과 %d\n", Number, Lucky, Number==Lucky);printf("%d!=%d 의 결과 %d\n", Number, Lucky, Number!=Lucky);

}

Page 28: C  Programming  Seminar

여러 가지 연산자논리 연산자 &&, ||, !, ^

논리 연산자 (logical poerator) 는 논리식을 이용해서 프로

그램 코드를 작성할 때 많이 사용한다 . 예를 들어서 ‘성이 김씨이고 , 주소가 서울에 사는 사람’ 을 찾아야 할 경우 , 먼저 성이 김씨인 사람을 찾고 또한 서울에 사는 사람을 찾아서 두 조건을 만족할 경우에만 이를 화면에 출력해야 한다 . 이때 ’ ~ 이고’ 에 해당하는 것이 논리 연산자이다 .

Page 29: C  Programming  Seminar

여러 가지 연산자논리 연산자

연산자 기호 의미&& 논리곱 (AND)|| 논리합 (OR)! 논리부정 (NOT)^ XOR 연산자로 반논리합 연산자이다 .

Page 30: C  Programming  Seminar

여러 가지 연산자

논리 연산자의 특징

① 피연산자는 논리식이나 관계식 등의 수식이다 .② 논리식의 결과는 참일 때는 1, 거짓일 때는 0 을 돌려준다 .③ 결합 방향은 오른쪽이다 .

A&&B조건 A 와 B 모두 만족A||B조건 A, 중 어느 한쪽을 만족

!A조건 A 가 아니다

Page 31: C  Programming  Seminar

여러 가지 연산자

논리 연산자 실습#include <stdio.h>

void main(){

int Logic1, Logic2, Logic3, Logic4;Logic1=(5>1)&&(4>1);Logic2=(1>5)&&(4>1);Logic3=(1>5)||(4>1);Logic4=!(5>1);

printf("(5>1)&&(4>1) 의 값은 %d\n", Logic1);printf("(1>5)&&(4>1) 의 값은 %d\n", Logic2);printf("(1>5)||(4>1) 의 값은 %d\n", Logic3);printf("!(5>1) 의 값은 %d\n", Logic4);

}

Page 32: C  Programming  Seminar

여러 가지 연산자

논리 연산자 실습#include <stdio.h>

void main(){

int Logic1, Logic2, Logic3, Logic4;Logic1=(5>1)&&(4>1);Logic2=(1>5)&&(4>1);Logic3=(1>5)||(4>1);Logic4=!(5>1);

printf("(5>1)&&(4>1) 의 값은 %d\n", Logic1);printf("(1>5)&&(4>1) 의 값은 %d\n", Logic2);printf("(1>5)||(4>1) 의 값은 %d\n", Logic3);printf("!(5>1) 의 값은 %d\n", Logic4);

}

Page 33: C  Programming  Seminar

여러 가지 연산자조건 연산자 ?:

조건 연산자 (Conditional operator) 는 독특하게 피연산자를 3 개씩 취하는 삼항 연산자이다 . 피연산자는 임의의 산술형 데이터나 수식이 허용되지만 , 통상 첫 번째 매개변수는 논리식 5 을 이용하고 , 두 번째와 세 번째 매개변수는 동일한 자료형을 사용한다 . 만약 동일한 자료형이 아니라면 동일한 자료형으로 변환시켜서 해주어야 한다 .

Page 34: C  Programming  Seminar

여러 가지 연산자

조건 연산자는 왼쪽의 논리식을 평가해서 참이면 두 번째 피연산자 즉 , 두 번째 매개변수를 선택하고 , 거짓이면 세 번째의 피연산자를 선택한다는 연산자이다 .

(Logic)?Value1:Value2;

조건 연산자의 형식

Page 35: C  Programming  Seminar

여러 가지 연산자조건 연산자의 특징① 삼항 연산자이다 .② 연산자로는 수식이나 산술형 자료를 사용할 수 있지만 , 보통 첫 번째 피연산자는 논리식이며 , 두 번째와 세 번째 피연산 자는 수식이나 산술 자료이다 .③ 첫 번째 피연산자가 수식일 경우에는 읽기 쉽도록 괄호로 묶 어주는 것이 좋다 .④ 두 번째와 세 번째 피연산자의 자료형은 같은 것이어야 한다 .⑤ 논리식이 참이면 두 번째 피연산자를 선택하고 , 논리식이 거 짓이면 세 번째 피연산자를 선택한다 .⑥ 중복 사용이 가능하다 .⑦ 결합 방향은 왼쪽이다 .

Page 36: C  Programming  Seminar

여러 가지 연산자

조건 연산자 실습#include <stdio.h>

void main(){

int One=1, Two=2, Result1, Result2, Result3;

Result1=(5>1)?One:Two;Result2=(1>5)?One:Two;Result3=((One<Two)?1:0)?9:0;

printf("Result1=(5>1)?One:Two 의 값은 %d\n", Result1);printf("Result2=(1>5)?One:Two 의 값은 %d\n", Result2);printf("Result3=((One<Two)?1:0)?9:0 의 값은 %d\n", Result3);

}

Page 37: C  Programming  Seminar

여러 가지 연산자

조건 연산자 실습#include <stdio.h>

void main(){

int One=1, Two=2, Result1, Result2, Result3;

Result1=(5>1)?One:Two;Result2=(1>5)?One:Two;Result3=((One<Two)?1:0)?9:0;

printf("Result1=(5>1)?One:Two 의 값은 %d\n", Result1);printf("Result2=(1>5)?One:Two 의 값은 %d\n", Result2);printf("Result3=((One<Two)?1:0)?9:0 의 값은 %d\n", Result3);

}

Page 38: C  Programming  Seminar

여러 가지 연산자비트 연산자 ~, &, |, ^

비트 연산자는 이진수 , 즉 비트 단위로 연산을 하는 독특한 연산자이다 . 때문에 일반적인 자료를 다룰 때는 별로 사용하지 않는다 . 그러나 게임을 제작하거나 글꼴을 제작하는 편집기 프로그램 등을 만들 때는 비트 연산자를 많이 사용한다 .비트 연산자의 성격은 논리 연산자와 같다 . 차이점이라면 논리 연산자는 수식이나 자료형을 사용하는 반면 비트 연산자는 비트 단위로 동작한다는 점이 다르다 . 비트 연산자는 전문 프로그래머가 아니면 거의 사용할 필요가 없는 연산자이다 .

Page 39: C  Programming  Seminar

여러 가지 연산자비트 연산자

연산자 기호 사용법 의미~ ~X X 의 1 의 보수를 계산& X&Y X 와 Y 를 비트 단위로 AND 연산! X|Y X 와 Y 를 비트 단위로 OR 연산^ X^Y X 와 Y 를 비트 단위로 배타적 OR 연산

Page 40: C  Programming  Seminar

여러 가지 연산자비트 연산자의 특징① ~ 는 단항 연산자이고 , 나머지는 이항 연산자이다 .

② 피연산자로는 문자형이나 정수형 자료를 사용한다 .

③ 결합 방향은 ~ 만 왼쪽이고 나머지는 오른쪽이다 .

Page 41: C  Programming  Seminar

여러 가지 연산자시프트 연산자 <<, >>

시프트 연산자 (shift operator) 는 주어진 자료의 비트 순서를 좌우로 밀어내는 기능을 수행한다 . 따라서 시프트 연산자를 사용할 때에는 주의를 요한다 . 잘못하다가는 음수가 양수로 바뀌어 결과 값에 치명적인 영향을 줄 수 있기 때문이다 . 또한 시프트 연산자의 특징으로는 산술연산 중에 곱셈과 나눗셈의 연산에 사용된다는 것이다 . 왼쪽으로 시프트하는 연산은 자릿수가 올라가기 때문에 곱셈이 되고 , 오른쪽으로 시프트하는 연산은 자릿수를 내리기 때문에 더 작아지는 나눗셈의 연산이 되는 것이다 .

Page 42: C  Programming  Seminar

여러 가지 연산자시프트 연산자

연산자 기호 사용법 의미<< X<<Y X 를 Y 비트만큼 왼쪽으로 shift>> X>>Y X 를 Y 비트만큼 오른쪽으로 shift 하고 빈자리에

0 을 채움

Page 43: C  Programming  Seminar

여러 가지 연산자왼쪽 이동 (shift) 연산자

오른쪽 이동 (shift) 연산자

0 0 0 1 1 0 1 1

0 1 1 0 1 1 0 0

27

108

128 64 32 16 8 4 2 1버린다

채운다

0 0 0 1 1 0 1 1

0 0 0 0 0 1 1 0

27

6

128 64 32 16 8 4 2 1

버린다

채운다

Page 44: C  Programming  Seminar

여러 가지 연산자시프트 연산자의 특징① 피연산자로는 문자형이나 정수형 자료를 사용한다 .② 결합 방향은 오른쪽이다 .③ 비트 단위로 밀어내기를 한다 .④ << 연산자는 오른쪽의 빈자리를 0 으로 채우며 , 왼쪽으 로 밀려나는 비트는 무시한다 .⑤ >> 연산자는 왼쪽의 빈자리를 부호 비트로 채우며 , 오 른쪽으로 밀려나는 비트는 무시한다 .

Page 45: C  Programming  Seminar

여러 가지 연산자

시프트 연산자 실습#include <stdio.h>

void main(){

int number1=1, number2=255;int index, Result;

printf(" 십진수 왼쪽시프트 결과 \n");

for(index=1; index<8; index++){

Result=number1<<index;printf(" %d %d %d\n", number2, index, Result);

}printf(" 십진수 왼쪽시프트 결과 \n");for(index=1; index<8; index++){

Result=number2>>index;printf(" %d %d %d\n", number2, index, Result);

}}

Page 46: C  Programming  Seminar

여러 가지 연산자

시프트 연산자 실습#include <stdio.h>

void main(){

int number1=1, number2=255;int index, Result;

printf(" 십진수 왼쪽시프트 결과 \n");

for(index=1; index<8; index++){

Result=number1<<index;printf(" %d %d %d\n", number2, index, Result);

}printf(" 십진수 왼쪽시프트 결과 \n");for(index=1; index<8; index++){

Result=number2>>index;printf(" %d %d %d\n", number2, index, Result);

}}

Page 47: C  Programming  Seminar

여러 가지 연산자캐스트 연산자 ()

캐스트 연산자는 자료형을 바꾸는 연산자이다 . 단 , 캐스트 연산

자를 사용하는 연산식에서만 일시적으로 바꾸는 것이며 선언 자체를 바꾸는 것은 아니다 .캐스트 연산자의 사용법은 간단하게 원하는 자료 앞에 괄호를 치고 , 그 안에 원하는 자료형을 써주면 된다 .

캐스트 연산자 사용 형식( 자료형 이름 )

Page 48: C  Programming  Seminar

여러 가지 연산자캐스트 연산자의 특징① 피연산자로는 산술 자료와 수식을 사용한다 .

② 피연산자의 자료형을 임시로 바꿀 때 사용한다 .

③ 결합 방향은 왼쪽이다 .

Page 49: C  Programming  Seminar

여러 가지 연산자

캐스트 연산자 실습#include <stdio.h>

void main(){

int Number1=5, Number2=2;float Result=0;

Result=Number1/Number2;printf("5/2 의 결과는 %f \n", Result);

Result=0;Result=(float)Number1/(float)Number2;printf("5/2 의 결과는 %f \n", Result);

}

Page 50: C  Programming  Seminar

여러 가지 연산자

캐스트 연산자 실습#include <stdio.h>

void main(){

int Number1=5, Number2=2;float Result=0;

Result=Number1/Number2;printf("5/2 의 결과는 %f \n", Result);

Result=0;Result=(float)Number1/(float)Number2;printf("5/2 의 결과는 %f \n", Result);

}

Page 51: C  Programming  Seminar

여러 가지 연산자연산자 우선순위

우선 순위 구분 연산자 결합방향1 기본 연산자 () [] -> →2 단항 연산자 ! ~ ++ -- -(type) * & sizeof ←3

이항연산자

승제 연산자 * / % →4 가감 연산자 + - →5 시프트 연산자 >> << →6 비교 연산자 < <= => > →7 등가 연산자 == != →8 비트 연산자 & ^ | →9 논리 연산자 && || →10 조건 연산자 ? : ←11 대입 연산자 = += -= *= /= %= ←12 콤마 연산자 , →

Page 52: C  Programming  Seminar

여러 가지 연산자

과제 1 – 원의 지름 , 넓이 , 둘레 구하기#include <stdio.h>

void main(){

int Number;float pi = 3.14;float Area, Result;

printf(" 원의 반지름을 입력하세요 : ");scanf("%d", &Number);

Area=(float)Number*(float)Number*pi;Result=(float)Number*2*pi;

printf(" 입력된 반지름의 값 : %d\n", Number);printf(" 원의 지름 : %d\n", Number*2);printf(" 원의 넓이 : %f\n", Area);printf(" 원의 둘레 : %f\n", Result);

}

Page 53: C  Programming  Seminar

여러 가지 연산자

과제 1 – 원의 지름 , 넓이 , 둘레 구하기원주율 pi = 3.14

원의 지름 : 반지름 x2

원의 넓이 : 반지름 x 반지름 xpi

원의 둘레의 길이 : 반지름 x2xpi

Page 54: C  Programming  Seminar

여러 가지 연산자

과제 1 – 원의 지름 , 넓이 , 둘레 구하기#include <stdio.h>

void main(){

int Number;float pi = 3.14;float Area, Result;

printf(" 원의 반지름을 입력하세요 : ");scanf("%d", &Number);

Area=(float)Number*(float)Number*pi;Result=(float)Number*2*pi;

printf(" 입력된 반지름의 값 : %d\n", Number);printf(" 원의 지름 : %d\n", Number*2);printf(" 원의 넓이 : %f\n", Area);printf(" 원의 둘레 : %f\n", Result);

}