'윤성우의 열혈 C프로그래밍'을 보고 정리한 글 입니다.
✔chapter 5. 상수와 기본 자료형
자료형 : 데이터를 표현하는 기준
변수 : 데이터의 저장을 위해서 할당된 메모리 공간에 붙혀진 이름
매모리 공간의 적절한 사용을 위해서 다양한 크기의 자료형이 필요하다
int형으로 계산하는것이 CPU에서 가장 빠르기 때문에 char나 short형으로 변수를 지정해주었다고 해도 수학적인 연산을 실행하게 되면 int형으로 바뀐다.
위 글로 인해서 int형이 가장 좋아보이나, 데이터의 양이 많아서 연산속도보다 데이터의 크기를 줄이는 것이 더 중요한 데이터들을 다룰 때는 char형이나 short형을 쓰는것이 유리하다.
unsigned : 정수 자료형의 앞에 사용되어 0이상의 값만 표현하는 자료형으로 만들어주는것
ex) unsigned int / unsigned long...
- 정수 자료형의 이름 앞에만 unsigned를 붙일 수 있다.
- unsigned가 붙으면, MSB도 데이터의 크기를 표현하는데 사용된다.
- 따라서 표현할 수 있는 값이 0 이상의 범위로 두 배가 된다.
리터럴(Literal) 상수 : 변수와 달리 이름이 없는 상수
int num = 30 + 40;
이라는 연산을 진행할 때 30과 40은 둘 다 메모리 상에 존재해야 하지만 할당된 메모리 공간에 이름이 없다. 이것을 리터럴, 리터럴 상수라고 한다.
아스키코드
char ch = 'A'; 를
printf("%d", sizeof(ch)); 로 출력하면,
int의 크기인 4가 출력된다.
이름을 지니는 심볼릭 상수 : const상수
const int MAX = 100;
라고 정의를 할 경우 값의 변경이 불가능하다.
자료형의 변환
- 실수형 데이터를 정수형 데이터로 변환하는 과정에서 소수부의 손실이 발생한다.(소수점 이하의 값이 버려짐) 반대의 경우에는 데이터 손실이 일어나지 않는다.
- 바이트가 큰 정수를 바이트가 작은 정수로 형 변환하는 경우에는, 상위 바이트를 단순히 소멸시키므로 부호가 바뀔 수 있다.
- 피연산자의 자료형이 일치하지 않아서 발생하는 자동 형 변환은 데이터의 손실을 최소화하는 방향으로 진행된다. (int와 double형의 연산은 double형에 맞춰서 연산이 진행된다.)
정수의 승격
short num1 = 3, num2 = 4; 를
short = num3 = num1 + num2 연산을 진행하게 된다면,
num1 + num2의 계산결과는 4byte 크기의 int형 정수이고,
num3에 저장하기 위해서 short로 다시 형 변환이 일어난다.
✔chapter 6. printf 함수와 scanf 함수 정리하기
printf 함수의 서식 지정 : 출력 양식이 만들어진 상태에서 출력을 진행한다.
ex) int num = 12; 를
printf("%d %X", num); 로 출력하면 "12 C"가 출력된다.
실수의 출력을 위한 서식문자들
%e : 지수를 표현하기 위해 사용한다. ex) 1.2x10^-12 = 1.2e-12
필드 폭을 지정하여 정돈된 출력 보이기
%8d : 필드 폭을 8칸 확보하고, 오른쪽 정렬해서 출력을 진행한다.
%-8d : 필드 폭을 8칸 확보하고, 왼쪽 정렬해서 출력을 진행한다.
'Language > C' 카테고리의 다른 글
C기반의 배열과 포인터, 그리고 함수 2 (0) | 2022.05.02 |
---|---|
C기반의 배열과 포인터, 그리고 함수 1 (0) | 2022.04.29 |
C기반의 조건문과 함수의 변수 개념들 (0) | 2022.04.27 |