연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자

Similar presentations


Presentation on theme: "연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자"— Presentation transcript:

1 연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
연산자 우선순위 산술 연산자 논리 연산자 콤마 연산자 sizeof 연산자

2 연산자 연산자 분 류 연 산 자 산술 연산자 +, -, *, /, % 관계 연산자
분     류 연   산   자 산술 연산자 +, -, *, /, % 관계 연산자 >, <, ==, !=, >=, <= 증감 연산자 ++, -- 논리 연산자 &&, ||, ! 조건 연산자 ?: 비트 논리 연산자 &, |, ^, ~ 비트 이동 연산자 <<, >> 대입 연산자 =

3 대입 연산자 대입 연산자 연산 진행 순서가 중요함 x = 5 + 6; 연산자 : ‘+’, '=' 피연산자 : 5, 6, x
피연산자인 5와 6을 산술 연산자 ‘+’를 이용하여 더 한 값이 대입 연산자 ‘=’를 통해 x에 저장된다. 대입 연산자가 가장 늦게 수행된다. 일반적인 수학에서와 다른 점    x = x + 2; 위의 수식은 일반적인 수학에서는 에러이다. 그러나 프로그램에서는 가능하다. 위의 수식은 x값에 2를 더한 결과를 x에 저장하라는 의미이다.

4 【예제 4-1】Ex1.c 02 대입 연산자 예제 01 #include <stdio.h>
02 int main(void) 03 { 04   int a, b = 0; 05   a = 4; 06   printf(" a = 4 문장을 실행 후 a의 값은 %d\n", a); 07   a = a + 3; 08   printf(" a = a + 3 문장을 실행 후 a의 값은 %d\n", a); 09   b = a + 2; 10   printf(" b = a + 2 문장을 실행 후 b의 값은 %d\n", b); 11   return 0; 12 } 표준입력 스트림

5 산술 연산자 – 단항 연산 02 단항 연산자 단항 산술 연산자란 피연산자를 하나만 사용하는 산술 연산자로 오른쪽에서 왼쪽으로 적용되며, ++, -- 등이 있다. ++나 --는 증감 연산자라고 불리는데, 변수의 값을 1씩 증가, 또는 감소시킨다. 연산자 연산식 의         미 ++  a ++ 변수의 값에 먼저 연산에 적용시킨 후 최종 변수의 값에 1을 증가시킨다. ++ a 변수의 값을 먼저 1 증가시킨 후 변수의 최종값을 수식에 적용시킨다. --  a -- 1을 감소시킨다. -- a 변수의 값을 먼저 1 감소시킨 후 변수의 최종값을 수식에

6 【예제 4-2】Ex2.c 02 산술 연산자 예제 01 #include <stdio.h>
02 int main(void) 03 { 04   int a, b, c; 05   a = 10; b = 20; c = 30; 06   a = ++b ; 07   c = b++; 08   printf(" a = %d  b = %d  c = %d \n", a, b, c); 09   a = ++b + ++c; 10   printf(" a = ++b + ++c 문장 실행후 \n"); 11   printf(" a = %d  b = %d  c = %d\n", a, b, c); 12   a = b++ + c++; 13   printf(" a = b++ + c++ 문장 실행후 \n"); 14   printf(" a = %d  b = %d  c = %d\n", a, b, c); 15    return 0; 16 } 표준입력 스트림

7 산술 연산자 – 이항 연산 03 이항 연산자 이항 산술 연산자는 두 개의 피연산자를 필요로 하는 산술 연산이다.
이항 산술 연산자는 사칙연산과 잉여 나눗셈을 포함한다. 연 산 자 의   미 기   능 + 덧  셈 a = b + c - 뺄  셈 a = b - c * 곱  셈 a = b * c / 나눗셈 a = b / c % 나머지 a = b % c

8 【예제 4-3】Ex3.c 02 산술 연산자 예제 01 #include <stdio.h>
02   int main(void) 03   { 04        int a = 20, b = 3, c = 7, d, e; 05        float f = 15.0, g;         06        d = a / b; 07        printf("d = a / b을 실행후 d의 값은 %d\n", d); 08        e = a % c; 09        printf("e = a %% c을 실행후 e의 값은 %d\n", e); 10        g = f / c; 11        printf("g = f / c를 실행후 g의 값은 %f\n", g); 12        return 0; 13    } 표준입력 스트림

9 【예제 4-4】Ex4.c 02 산술 연산자 예제 01 #include <stdio.h>
02  int main(void) 03   { 04        int length, area; 05        printf("정사각형의 한변을 입력하라 \n"); 06        scanf("%d", &length); 07        area = length * length; 08        printf("정사각형의 넓이는 %d 이다.\n", area); 09        return 0; 10    } 표준입력 스트림

10 관계 연산자 04 관계 연산자 두 수간에 대소 관계 및 특정 조건을 검사할 때 사용하는 연산자로 관계가 사실이면 참(true
또는 1)을, 성립되지 않으면 거짓(false 또는 0)을 표시한다. 다음은 관계 연산자의 종류를 나 타낸다. 프로그램에서는 거짓은 ‘0’으로 나타내고, ‘0’이외의 모든 값은 참으로 여긴다. 연산자 의미 사 용 법 > ~ 보다 크다 a = (b > c) b가 c보다 크면 a=1, 그렇지 않으면 a = 0이다. < ~ 보다 작다 a = (b < c) b가 c보다 작으면 a=1, 그렇지 않으면 a = 0이다. >= ~ 보다 크거나 같다 a = (b >= c) b가 c보다 크거나 같으면 a=1, 그렇지 않으면 a = 0이다. <= ~ 보다 작거나 같다 a = (b <= c) b가 c보다 작거나 같으면 a=1, 그렇지 않으면 == 같다 a = (b == c) b와 c가 같으면 a=1, 그렇지 않으면 a = 0이다. != 같지 않다 a = (b != c) b와 c가 같지 않으면 a=1, 그렇지 않으면

11 【예제 4-5】Ex5.c 02 관계 연산자 예제 01 #include <stdio.h>
02 int main(void) 03 { 04   int score, grade; 05     printf("점수를 입력하세요 : "); 06    scanf("%d", &score); 07   grade = score >= 90; 08   if (grade == 1) 09           printf("결과는 %d, 합격\n", grade); 10    else 11           printf("결과는 %d, 불합격\n", grade); 12    return 0; 13 } 표준입력 스트림

12 논리 연산자 05 논리 연산자 여러 개의 조건을 결합하여 판정하는 연산자로 AND, OR, NOT의 논리 연산을 수행한다. 관계 연산자와 마찬가지로 참(true)일 때는 1로, 거짓(false) 일 때는 0으로 표시된다. 연산자 의   미 사  용  법 논리곱(&&) AND a = b && c b와 c가 모두 참이면 a = 1, 아니면, a = 0 이다. 논리합(||) OR a = b || c b와 c가 모두 거짓면 a = 0, 아니면, a = 1 이다. 논리부정(!) NOT a = !b b가 참이면 a = 0, b가 거짓이면 a = 1이다.

13 【예제 4-6】Ex6.c 02 논리 연산자 예제 01 #include <stdio.h>
02 int main(void) 03 { 04    int a = 0, b = 1; 05    printf("논리 연산 1 && 2 의 결과 : %d\n", 1 && 2); 06    printf("논리 연산 0 && 2 의 결과 : %d\n", 0 && 2); 07    printf("논리 연산 0 || 2 의 결과 : %d\n", 0 || 2); 08    printf("논리 연산 0 || 0 의 결과 : %d\n", 0 || 0); 09    printf("논리 연산 !a 의 결과 : %d\n", !a); 10    printf("논리 연산 !b 의 결과 : %d\n", !b); 11     return 0; 12 } 표준입력 스트림

14 【예제 4-7】Ex7.c 02 논리 연산자 예제 01 #include <stdio.h>
02     int main(void) 03    { 04        int a = 0, b = 1, c = 1;     05        printf("논리 연산 1 && 1 || 0 의 결과 : %d\n", 1 && 1 || 0); 06        printf("논리 연산 1 && 0 || 1 의 결과 : %d\n", 1 && 0 || 1); 07        printf("논리 연산 1 && 0 || 1 의 결과 : %d\n", 1 && 0 || 0); 08        printf("논리 연산 1 && 0 || 0 && 1 의 결과 : %d\n", b && a || a && c); 09        printf("논리 연산 <1 && 0> || <0 && 1>의 결과 : %d\n", (b && a) || (a && c)); 10        return 0; 11      }

15 【예제 4-8】Ex8.c 02 논리 연산자 예제 01 #include <stdio.h>
02     int main(void) 03    { 04         int a = 0, b = 1, c = 1; 05         printf("a < b && c > a 결과 : %d\n", a < b && c > a); 06         printf("a > b && c > a 결과 : %d\n", a > b && c > a); 07         printf("a > b || c > a 결과 : %d\n", a > b || c > a); 08         printf("괄호를 사용하는 것이 더 좋음\n"); 09         printf("(a > b) || (c > a) 결과 : %d\n", (a > b) || (c > a));    10         return 0; 11      }

16 비트 연산자 06 비트 연산자 비트 연산자는 피연산자 정수값을 비트 단위로 논리 연산을 수행하는 연산자이다. AND, OR,
NOT의 기본 논리식에 의해 이루어진다. 연산자 의  미 사  용  법 & 비트 곱 (AND) a = b & c b와 c를 AND 연산하여 a에 대입 | 비트 합 (OR) a = b | c b와 c를 OR 연산하여 a에 대입 ^ 배타적 논리합(XOR) a = b ^ c b와 c를 XOR 연산하여 a에 대입 ~ 비트 반전 (1의 보수) a = ~c b의 각 비트를 반전하여 a에 대입 << 왼쪽으로 이동 (shift) a << b a를 b만큼 왼쪽으로 비트 이동 >> 오른쪽으로 이동 (shift) a >> b a를 b만큼 오른쪽으로 비트 이동

17 【예제 4-9】Ex9.c 02 비트 연산자 예제 01 #include <stdio.h>
02    int main(void) 03   { 04        unsigned char lastmask = 1;     05        unsigned char firstmask = 128;  06        unsigned char input; 07        printf("값을 입력하시오.\n"); 08        scanf("%d", &input); 09        printf("입력한 값 %d의 첫번째 비트는 %d  이다.\n", 10               input, input & firstmask); 11        printf("입력한 값 %d의 마지막 비트는 %d  이다.\n", 12               input, input & lastmask); 13        return 0; 14    } 표준입력 스트림

18 【예제 4-10】Ex10.c 02 비트 연산자 예제 01 #include <stdio.h>
02    int main(void) 03   { 04        unsigned char lastmask = 1;     05        unsigned char firstmask = 128;  06        unsigned char input; 07    printf(" 0 ~ 255 사이 값중 짝수를 입력하시오.\n"); 08        scanf("%d", &input); printf("입력한 값 %d의 첫번째 비트 %d  이다.\n", 10                input, input & firstmask); 11        printf("입력한 값의 첫번째 비트 값만 바꾸면 입력한 값 은 %d가 된다.\n", input ^ firstmask); 13        printf("입력한 값의 마지막 비트 값을 바꾸면 입력한 값 은 %d가 된다.\n", input | lastmask); 14        return 0; 15    }

19 【예제 4-11】Ex11.c 02 비트 연산자 예제 01 #include <stdio.h>
02 int main(void) 03 { 04    int a, b, c, d; 05    int x = 10, y = 7; 06    a = x & y; 07    b = x | y; 08    c = x ^ y; 09    d = ~x; 10    printf("논리곱  비트 연산 x & y 의 결과 : %d\n", a); 11    printf("논리합  비트 연산 x | y 의 결과 : %d\n", b); 12   printf("배타적  비트 연산 x ^ y 의 결과 : %d\n", c); 13     return 0; 14 } 표준입력 스트림

20 【예제 4-12】Ex12.c 02 콤마 연산자 예제 01 #include <stdio.h>
02 int main(void) 03 {   int x, y; 05    printf("x = %d, y = %d\n", x = ( y = 5, y + 10), y); 06    07    return 0; 08 } 표준입력 스트림

21 축약 연산 07 축약 연산 연산자 의 미 사용법 += a와 b를 더해 a에 대입 a += b -= a와 b를 빼 a에 대입
의           미 사용법 += a와 b를 더해 a에 대입 a += b -= a와 b를 빼 a에 대입 a -= b *= a와 b를 곱해 a에 대입 a *= b /= a와 b를 나누어 a에 대입 a / =b %= a와 b를 나눈 나머지를 a에 대입 a %= b <<= a와 b비트만큼 좌측으로 이동시켜 a에 대입 a <<= b >>= a와 b비트만큼 우측으로 이동시켜 a에 대입 a >>=b &= a와 b를 비트별로 AND 연산하여 a에 대입 a &= b |= a와 b를 비트별로 OR 연산하여 a에 대입 a | = b ^= a와 b를 비트별로 XOR 연산하여 a에 대입 a ^= b

22 【예제 4-13】Ex13.c 02 축약 연산 예제 01 #include <stdio.h>
02 int main(void) 03 {   int a = 10; 05    printf("초기값 : a = 10\n");   a += 5; 07    printf("a += 5 : %d\n", a);   a = 10; a -= 5+2; 09    printf("a -= 5+2 : %d\n", a);   a = 10; a *= 2+5; 11    printf("a *= 2+5 : %d\n", a); 12    return 0; 13 } 표준입력 스트림

23 sizeof 연산자 08 sizeof 연산자 변수나 자료형의 바이트 단위 크기를 알고자 할 때 sizeof 연산자를 이용한다.
자료형에 사용 예 sizeof(int) : 결과 값 4 sizeof(double) : 결과 값 8     printf(" %d\n", sizeof(int)); 4 출력 변수에 사용 예 int a;  double d; sizeof(a) : 결과 값 4 sizeof d : 결과 값 8    주의 : 변수에 사용할 때는 sizeof 다음에 괄호를 써도 되고 안써도 된다. 그러나, 자료형에는 반드시 괄호를 사용해야 한다.

24 【예제 4-14】Ex14.c 02 Sizeof 연산자 예제 01 #include <stdio.h>
02 int main(void) 03 { 04   char c = 'a'; 05   int a = 10; 06   double d = 5.0; 07   printf("char 자료형의 바이트 크기는 %d 이다.\n", sizeof(char)); 08   printf("int 자료형의 바이트 크기는 %d 이다.\n", sizeof(int)); 09   printf("double 자료형의 바이트 크기는 %d 이다.\n", sizeof(double)); 10   printf("변수 c의 바이트 크기는 %d 이다.\n", sizeof(c)); 11   printf("변수 a의 바이트 크기는 %d 이다.\n", sizeof a); 12   printf("변수 d의 바이트 크기는 %d 이다.\n", sizeof d); 13   return 0; 14 }

25 연산자의 우선 순위 09 연산자의 우선 순위 ( )안의 내용을 먼저 처리한다. 단항 연산자가 이항 연산자보다 먼저 처리된다.
 ( )안의 내용을 먼저 처리한다.  단항 연산자가 이항 연산자보다 먼저 처리된다.  증감 연산자는 위치에 따라 처리되는 순서가 다르지만 대개 좌측에서 우측으로의 실행을 원칙으로 한다. 연산자의 분류에 따른 우선순위 대입 < 조건 < 논리 < 비트 < 관계 < 이동 < 산술 < 단항


Download ppt "연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자"

Similar presentations


Ads by Google