형변환
- 자료의 형변환
표현 범위가 작은 자료형 -> 큰 자료형은 문제 없지만
예) int -> double
표현 범위가 큰 자료형에서 작은 자료형으로의 변환은 자료를 잃어버릴 수 있음!
따라서 형변환을 해줘야한다.
묵시적 형변환 :
명시적 형변환 : static_cast<자료형>(대상), (자료형)
#include <iostream>
using namespace std;
int main()
{
int a=20, b=3;
float c, d, e;
c=a/3.5f; // 배정도형을 float 실수형으로 만드는 방법으로는 (float)3.5 혹은 3.5f를 해주면된다.
d=a/b;
e = static_cast<float>(a) / b;
//e = (float)a / b; 와 같은 의미이다.
cout.setf(ios::fixed, ios::floatfield);
// 소수점 자리에 값이 없으면 출력하지 않는데
// 소수점 자리를 강제로 출력하고 싶을 때 사용한다.
cout << "연산결과: 실수형= " << c << endl;
cout << "연산결과: 정수형= " << d << endl;
cout << "연산결과: 형변환 후 = " << e << endl;
return 0;
}
연산자
연산의 입출력을 위해 사용된 내용들
cout : 화면에 내용 출력, 출력 내용을 << 연산자로 연결함
cin : 화면에 입력한 내용을 변수에 할당, 입력 내용을 >> 연산자로 연결함
산술연산자
사칙연산(+,-,*,/), 나머지 연산자(%)
정수와 정수의 덧셈 결과는 정수, 정수와 정수의 나눗셈 결과는 정수 -> 몫
정수와 실수의 뺄셈 결과는 실수, 정수와 실수의 나눗셈 결과는 실수
단축연산자1
- 변수에 값 누적하기
누적할 변수는 연산에 따라 반드시 초기화!!!
예) 변수에 1의 값으로 누적하기
a=a+1 -> 변수 a는 0으로 초기화
예) 변수 값을 3의 곱 만큼 누적하기
b=b*3 -> 변수 b는 1로 초기화
초기화하지 않고 사용한 경우에는 디버그 오류가 발생한다.
단축연산자2
연산 | 연산자 | 설명 |
뎃셈 누적 | += | a=10; a+=3; 변수 a는 13이 저장됨 |
뺄셈 누적 | -= | a=10; a-=3; 변수 a는 7이 저장됨 |
곱셈 누적 | *= | a=10; a*=3; 변수 a는 30이 저장됨 |
나누기 누적 | /= | a=10; a/=3; 변수 a는 3이 저장됨 |
나머지 누적 | %= | a=10; a%=3; 변수 a는 1이 저장됨 |
1누적 | ++ | a=10; a++; 변수 a는 11이 저장됨 |
1감소 | - - | a=10; a--; 변수 a는 9이 저장됨 |
++, -- 는 피연산자 앞과 뒤에 따라 값이 달라진다. 아래를 통해 알아보자.
#include <iostream>
using namespace std;
int main()
{
int a = 10; //a=10
a++; //a=11
cout << "a=" << a << endl; //a=11
cout << "a=" << a++ << endl; //a의 값 11을 출력하고 12로 증가함
cout << "a=" << ++a << endl; //a가 증가하여 13이 되고 13을 출력함
cout << "a=" << a << endl; //a는 13
return 0;
}
'C > [언어본색] C 기초' 카테고리의 다른 글
[언어 본색] #10 2장 - 논리형 (2) (0) | 2021.09.30 |
---|---|
[언어 본색] #09 2장 - 논리형 (1) (0) | 2021.09.30 |
[언어 본색] #07 2장 - 컴퓨터가 표현하는 데이터 (0) | 2021.09.29 |
[언어 본색] #06 2장 - 변수와 상수 (3) (0) | 2021.09.29 |
[언어 본색] #05 2장 - 변수와 상수 (2) (0) | 2021.09.28 |