본문 바로가기
C 프로그래밍

독학으로 배우는 C언어 019 대입 연산자

by 솔토지빈 2024. 8. 28.
반응형

독학으로 배우는 C언어 019 대입 연산자

Contents

     

    1. 단항 연산자

    변수의 값을 1씩 증가(increment) 하거나 1씩 감소(decrement) 하는 연산자로 다음과 같은 종류가 있다.

     

    연산자 기능 사용예
    ++
    --
    1 씩 증가
    1 씩 감소
    a=a+1 --> a++, ++a
    b=b-1 --> b--, --b

     

    실습 1: 인크리먼트 연산

    다음의 프로그램을 작성하여 ex069.c 저장하고 실행해  보자.

    #include <stdio.h>
    int main(void)
    {
    	int a, b, c;
    	a = 2;
    	b = 3;
    	c = b + a++;
    	printf("a 변수 값 %d ", a);
    	printf("c 변수 값 %d ", c);
    	return 0;
    }

     

    설명 : 행 설명

    b+a++ 3+2를 연산하고 그 값을 c 변수에 대입한 다음에 a 변수값에 1을 증가시킨다.

     

    실습 2: 디크리먼트 연산

    다음의 프로그램을 작성하여 ex070.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	int a, b, c;
    	a = 2;
    	b = 3;
    	c = b + ++a;
    	printf("a 변수 값 %d ", a);
    	printf("c 변수 값 %d ", c);
    	return 0;
    }

     

    설명 : 행 설명

    c = b + ++a; a 값에 1을 증가하고 a (3) b (3) 을 더한 결과를 c 변수에 대입한다.

     

    ++ 는 값을 1 만큼씩 증가 시킨다.

    ++a , a++ a1을 더한다는 의미는 같으나 ++a 1을 더한 다음 처리를 하는 반면 a++ 은 식에서 연산을 먼저 수행하고 1을 더한다는 점이 다르다.

     

    실습 3: 단항 연산의 단독 사용1

    다음의 프로그램을 작성하여 ex071.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	int a = 10;
    	printf("%d\n", ++a);
    	printf("%d\n", a++);
    	printf("%d\n", a);
    	return 0;
    }

     

    설명 : 행 설명

    5: printf("%d\n",++a); : 먼저 101을 더하여 11을 표시한다.

    6: printf("%d\n",a++); : a11이므로 먼저 11을 표시하고 a+1 수행한다.

    7: printf("%d\n",a); : 출력 후에 a에는 12가 저장되었기 때문에 a 12를 출력한다.

     

    수식에 포함되지 않고 ++a ; a++; 등과 같이 단독으로 사용되었을 때는 연산자가 앞뒤 어디에 있든 관계없이 1이 증가한 값을 가진다.

    수식에서 단항 연산자를사용할 때는 변수앞에 놓아야할지 아니면 뒤에 놓아야 할지 잘 판단해야 한다.

     

    실습 4: 단항 연산의 단독 사용2

    다음의 프로그램을 작성하여 ex072.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	int a = 10;
    	printf("%d\n", --a);
    	printf("%d\n", a--);
    	printf("%d\n", a);
    	return 0;
    }

     

    2. 결합 연산자

     

    a = a + 2 ; 와 같은 식을 누적식이라고 하며 이러한 누적식은 c에서 a +=2; 로 사용한다. 이때 += 을 결합 연산자라고 한다.

     

    연산자 누적식 예 결합 예
    += 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/b 의 나머지값을 a 에 대입한다.

     

    실습 1: 결합 연산자1

    다음의 프로그램을 작성하여 ex073.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	int a = 10, b = 10, c = 10, d = 10, e = 10, v = 3, w = 3, x = 3, y = 3, z = 3;
    	a += v++;
    	printf("%d\n", a);
    	b += --w;
    	printf("%d\n", b);
    	c *= ++x;
    	printf("%d\n", c);
    	d /= y--;
    	printf("%d\n", d);
    	e %= ++z;
    	printf("%d\n", e);
    	return 0;
    }

     

    실습 2: 결합 연산자2

    다음의 프로그램을 작성하여 ex074.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	int a = 2, b = 5, c = 6, d = 10;
    	a += b;
    	b -= c;
    	c *= d;
    	d /= a;
    	a %= c;
    	printf("%d\n %d\n %d\n %d\n %d\n", a, b, c, d, a);
    	return 0;
    }

     

    설명 : 행 설명

    5: a+=b; 에서는 a+b를 실행하여 b에 대입한다. 따라서 2+5=7 a에 대입된다.

    a+=b; 대신에 a=a+b;를 사용할 수 있다.

     

    실습 3: 결합 연산자3

    다음의 프로그램을 작성하여 ex075.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
    	int a, b, c;
    	c = (a = 5, b = 7, a * b);
    	printf("%d\n", c);
    	return 0;
    }

     

    설명 : 행 설명

    5: c = (a = 5, b = 7, a * b); 에서는 ( )안에 있는 내용중에서 a=5가 가장 먼저 수행되고 b=7이 두번째로 수행되고 세번째로 대입된 ab를 곱한 결과가 C에 저장된다.

     

    실습 4: 결합 연산자4

    하나의 숫자를 입력 받아 4를 더 한 값을 출력하는 프로그램을 작성하여 ex076.c 저장하고 실행해 보자.

    #include <stdio.h>   
    int main(void)
    {
    	int a;
    	a = getchar();
    	a += 4;
    	putchar(a);
    	return 0;
    }

     

    설명 : 행 설명

    6: a+=4; a=a+4와 같은 식을 사용할 수 있다.

     

    3. 조건연산자

     

    “(조건) ? ” 를 사용

     

    a>b 에서 a b 보다 크면 a ,같거나 작으면 b 를 연산자로 한다.

     

    실습 1: 조건 연산자

    다음의 프로그램을 작성하여 ex077.c 저장하고 실행해 보자.

    #include <stdio.h>
    int main(void)
    {
        int a = 100, b = 200;
        int c, d;
        c = ((a > b) ? a : b);
        d = ((a < b) ? a : b * b);
        printf("%d\n", c);
        printf("%d\n", d);
        return 0;
    }

     

    6: c = ( ( a > b ) ? a : b );

     

    조건식이 성립되면 a 의 값을 c 에 대입

    조건식이 성립되지 않으면 b 의 값을 c 에 대입

     

    7: 조선식이 성립되므로 a값을 출력

    반응형

    댓글