독학으로 배우는 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++ 는 a에 1을 더한다는 의미는 같으나 ++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); : 먼저 10에 1을 더하여 11을 표시한다.
6: printf("%d\n",a++); : a는 11이므로 먼저 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이 두번째로 수행되고 세번째로 대입된 a와 b를 곱한 결과가 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값을 출력
'C 프로그래밍' 카테고리의 다른 글
독학으로 배우는 C언어 021 조건문 if else 문 (2) | 2024.12.02 |
---|---|
독학으로 배우는 C언어 020 조건문 단일 if문 (2) | 2024.09.06 |
독학으로 배우는 C언어 018 8진수와 16진수의 표시 (0) | 2024.08.15 |
독학으로 배우는 C언어 017 다양한 입력 함수 (0) | 2024.07.30 |
독학으로 배우는 C언어 016 문자 자료의 입력 (0) | 2024.07.21 |
댓글