3.2.4 대입연산자 assignment operator
'='을 사용하여 구성되며, 연산자의 오른쪽을 왼쪽에 대입하는 데 사용
수식을 압축하여 간단하게 기술할 수 있으므로 프로그램의 길이는 짧아지고 실행 속도도 빨라진다.
#include <stdio.h>
void main(){
int a = 10, b = 3, c = 1;
a *= (b -1); // a= a * (b - 1)의 의미
b /= 2 + 3;
/* b = b/(2+3)이고 정수형끼리의
나눗셈이므로 결과는 0 이딤 */
c += 2; // c = c + 2
printf("a = %d, b = %d, c = %d", a, b, c);
}
3.2.5 조건 연산자 conditional operator
주어진 조건의 만족 여부에 따라 지정된 수식을 수행하는 연산자로서 3개의 피연산자를 취하는 3항 연산자이다.
수식은 명령이나 연산식 등이 사용될 수 있으며 '?' 와 ' :' 이 조합으로 구성된다.
- 형식 : (조건)? 수식1 : 수식2 ;
- 사용 예 : x = (5 > 2 ) ? 1 : 0;
- 기능 : 조건이 성립하면 (참이면) 수식 1을 수행하고, 조건이 성립되지 않으면 (거짓이면 ) 수식 2를 수행한다.
#include <stdio.h>
void main(){
int a = 10, b;
b = ( a>15) ? (a+1) : (a-1);
// 조건을 만족하지 않으므로 a - 1을 수행
printf("b = %d", b); }
3.2.6 비트 연산자 bitwise operator
수치를 2진수로 변환하여 bit 단위의 연산을 수행하는 연산자
비트 연산자는 정수형 자료에서만 사용 가능
x | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
y | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
x&y | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
x|y | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
x^y | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
~x | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
x << 2 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
x >> 2 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
3.2.7 기타 연산자
(1) sizeof() 연산자
- 형식 : sizeof(자료)
- 사용예 : sizeof(int)
- 기능 : 지정한 자료(자료형, 상수, 변수, 수식)에 대한 기억장소의 크기를 구한다.
#include <stdio.h>
void main(){
float a = 3.14;
printf("int형의 크기는 = %d 바이트 \n", sizeof(int));
// int 형의 자료 크기를 출력
printf("float형 변수 a의 크기는 = %d바이트 \n", sizeof(a));
//float형인 a의 크기를 출력 }
(2) cast 연산자 (형변환 연산자)
'자동 형변환' 과 '강제 형변환'이 있는데,
자동 형변환은 컴파일러에 의해 자동으로 발생하는 형변환이고,
강제 형변환은 cast 연산자를 사용해 프로그래머가 형변환을 명시해서 강제로 변환이 일어나는 것
3.2.8 연산자 우선순위
하나의 연산식에 여러개의 연산자가 사용될 경우에는 연산자 우선순위에 따라 연산이 이루어진다.
또한 우선순위가 같은 연산자가 연속적으로 나열되어 있는 경우에는 연산자의 결합 방향에 의거하여 연산이 이루어진다.
'방송통신대학 > C 프로그래밍' 카테고리의 다른 글
제5강 switch문, goto문 예시 (0) | 2020.05.26 |
---|---|
제5강 if문, if~else문 (0) | 2020.05.25 |
제4장 연산자(operator)(산술 연산자, 관계 연산자) (0) | 2020.05.23 |
제 3강 입출력함수 ( scanf(), putchar(), gets(), puts() 예시 ) (0) | 2020.05.22 |
제 3강 입출력함수(입출력함수 정리, printf () 예시 ) (0) | 2020.05.21 |