티스토리 뷰
연산자 sizeof : 자료형의 크기 확인가능
정수형
일반적으로 CPU가 처리하기에 가장 적합한 크기의 정수 자료형을 int로 정의한다. 따라서 int형 연산의 속도가 다른 자료형의 연산속도에 비해서 동일하거나 더 빠르다.
char, short는
데이터의 양이 많아서 연산속도보다 데이터의 크기를 줄이는 것이 더 중요한 데이터
인 경우에 사용
실수형
보편적으로 선택하는 자료형 : double(과거에는 float)
unsigned를 붙여서 0과 양의 정수만 표현하게 할 수 있다.(부호비트를 크기 비트로 변경)(양의 정수 2배)
signed는 default값
(char는 예외일 수도 있어.)
아스키(ASCII) 코드
문자, 특수문자를 숫자로 표현(총 128개)
리터럴 상수 : 변수와 달리 이름이 없는 상수
int num1 = 3 + 4;에서 3과 4는 리터럴 상수
int형으로 표현 가능한 정수형 상수는 int형으로 메모리 공간에 저장하기로 약속
double형도 마찬가지
!! 이 때 대입 연산자의 왼편에 있는 변수의 자료형은 상관없어
접미사
float num=5.789; //경고 => float num=5.789f;
U : unsigned int
L : long
UL, LL(long long), ULL(unsigned long long)
F : float
L : long double
자료형의 변환
자동 형 변환
1. 정수를 실수로 형 변환
2. 실수를 정수로 형 변환
3. 바이트 크기가 큰 정수를 바이트 크기가 작은 정수로 형 변환 - 상위 바이트의 손실(부호가 바뀌는 경우도 있어)
정수의 승격
short num1=15; num2=25;
short num3=num1+num2;
int형으로 계산
피연산자의 자료형 불일치로 발생하는 자동 형 변환
double num1=5.15+19; (int를 double형 실수로 형 변환)
데이터 손실의 최소화 기준
int => long => long long => float => double => long double
명시적 형 변환 : 강제로 일으키는 형 변환
int num1 = 3, num2 = 4;
double divResult;
divResult = num1 / num2;
printf("나눗셈 결과: %f \n", divResult);
0이 나옴
int num1 = 3, num2 = 4;
double divResult;
divResult = (double)num1 / num2;
printf("나눗셈 결과: %f \n", divResult);
0.750000 나옴
연산결과의 자료형은 피연산자의 자료형과 일치하기 때문에 나눗셈의 결과가 0이 된다.
이 때 형 변환 연산자 사용해서 강제로 형 변환.
printf 함수
%8d : 필드 폭을 8칸 확보하고, 오른쪽 정렬해서 출력을 진행한다.
%-8d : 필드 폭을 8칸 확보하고, 왼쪽 정렬해서 출력을 진행한다.
scanf 함수
정수
%d : 10진수 정수
%o : 8진수 양의 정수
%x : 16진수 양의 정수
실수(printf와 별도 기억)
%lf : double
%Lf : long double
* float, double, long double
데이터 출력에 사용되는 서식문자 : %f, %f, %Lf
데이터 입력에 사용되는 서식문자 : %f, %lf, %Lf
서식문자 %s가 문자열의 입력에 사용된다.
scanf("%s", str); // str앞에 &연산자를 삽입하지 않는다.
문자열 배열 이름 앞에는 & 연산자 안붙여
scanf_s로 바뀜
scanf_s("%s", str2, 20); //%s일때만 뒤에 출력할 길이 입력
scanf_s에서 문자열을 입력받을 때는 char 기준 [배열 길이 - 1]의 값이 들어가야 합니다. 마지막 NULL문자를 넣기 위함입니다.
/0이 뒤에 붙으면 문자열이야(널문자)
널 문자의 아스키 코드 값은 0, 문자는 출력안돼
마지막에 널문자가 없으면 문자배열이야 있어야 문자열배열
문자열은 띄어쓰기에 따라 구분
'책 > 윤성우 열혈 C 프로그래밍' 카테고리의 다른 글
달팽이 배열 (0) | 2020.09.19 |
---|---|
포인터2 (0) | 2020.09.16 |
포인터1 (0) | 2020.09.14 |
유클리드 호제법(최대공약수, 최소공배수) (0) | 2020.09.13 |
정수와 실수의 표현 방식 (0) | 2020.09.11 |