1. 형 변환 연산자
형 변환 연산자는 말 그대로 이미 선언한 피연산자의 형태를 변환하는 연산자이다.
#include <stdio.h>
int main() {
int a = 20, b = 3;
double res;
res = ((double)a / (double)b);
printf("a = %d, b = %d\n", a, b);
printf("a/b의 결과 : %.1lf\n", res);
a = (int)res;
printf("(int) %.1lf의 결과 : %d\n", res, a);
}
a = 20, b = 3
a / b의 결과 : 6.7
(int) 6.7의 결과 : 6
애초에 처음부터 a와 b를 double형으로 선언하면 편하겠지만, double형은 저장 공간이 크고 연산 속도가 느리다. 그리고 오차가 발생할 확률이 크기 때문에 int형을 기본적으로 사용하고 실수 연산 결과가 필요할 때만 형 변환을 사용하는 것이 좋다.
기억할 것
1. 괄호안에 자료형을 변환을 했다고 해서 출력할 때 정수형으로 불러오면 안된다는 것
2. 괄호안에 변형할 자료형을 적는 것
3. 변경한 값을 저장할 변수로 변경될 자료형으로 선언할 것
2. size of 연산자
size of 연산자는 피연산자를 하나만 사용할 수 있으며 피 연산자의 크기를 바이트 단위로 계산해서 알려주는 것이다.
대상은 변수, 상수, 수식, 자료형이 된다.
#include <stdio.h>
int main() {
int a = 10;
double b = 3.4;
printf("int형 변수의 크기 : %d\n", sizeof(a));
printf("double형 변수의 크기 : %d\n", sizeof(b));
printf("정수형 변수의 크기 : %d\n", sizeof(10));
printf("수식의 결과값의 크기 : %d\n", sizeof(1.5 + 3.4));
printf("char 자료형의 크기 : %d\n", sizeof(char));
return 0;
}
int형 변수의 크기 : 4
double형 변수의 크기 : 8
정수형 변수의 크기 : 4
수식의 결과값의 크기 : 8
char 자료형의 크기 : 1
기억할 것
1. 데이터의 크기를 확인하거나 메모리를 동적으로 할당하는 작업 등에 유용하게 사용된다
2. sizeof를 사용할 대상이 수식이거나 문자형이면 반드시 괄호로 묶어줄 것
3. 복합대입 연산자
복합대입 연산자는 연산결과를 다시 피연산자에게 저장한다. 산술 복합대입 연산자라는 것이 있다.
복합대입 연산식 | 동일한 연산식 | 복합대입 연산식 | 동일한 연산식 |
a += b | a = a + b | a &= 2 | a = a & 2 |
a -= b | a = a - b | a ^= 2 | a= a ^ 2 |
a *= b | a = a * b | a |= 2 | a = a | 2 |
a /= b | a = a / b | a <<= 2 | a = a << 2 |
a %= b | a = a & b | a >>= 2 | a = a >> 2 |
#include <stdio.h>
int main() {
int a = 10, b = 20;
int res = 2;
a += 20;
res *= b + 10;
printf("a = %d, b = %d\n", a, b);
printf("res = %d\n", res);
return 0;
}
a = 30, b = 20
res = 60
기억할 것
1. a += 20 이라는 수식은 a = a + 20 이라는 수식이다. 그러면 res *= b + 10은 res = 2 * (b + 10)이다.
res 자리에 2가 들어가는 이유는 위에서 선언을 했고, 6행 이후로는 res는 60이 될 것이다.
4. 조건 연산자
조건 연산자는 유일한 삼항 연산자이다. ?와 :를 사용한다.
첫 번째 피연산자가 참이면 두 번째 피연산자가 결과값이 되고 거짓이면 세 번째 피연산자가 결과값이 된다.
#include <stdio.h>
int main() {
int a = 10, b = 20, res;
res = (a > b) ? a : b;
printf("큰 값 : %d\n", res);
return 0;
}
큰 값 : 20
4행을 살펴보면 a > b의 연산식이 거짓이기 때문에 res에는 b의 값이 저장되고, 5행의 코드에 res 값을 출력할 때 20이 출력되는 것을 볼 수 있다.
기억할 것
1. 참이면 왼쪽, 거짓이면 오른쪽의 값을 가져온다.
2. 조건연산자는 삼항 연산자이다.
'C언어 > 공부한 것들' 카테고리의 다른 글
[혼자 공부하는 C언어] 키보드 수식 결과 출력 (1) | 2023.11.17 |
---|---|
[혼자 공부하는 C언어] BMI 구하기 (0) | 2023.11.17 |
[혼자 공부하는 C언어] 연산자 확인문제 (0) | 2023.11.17 |
[혼자 공부하는 C언어] 연산자 확인문제 (0) | 2023.11.16 |