Presentation is loading. Please wait.

Presentation is loading. Please wait.

연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 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