티스토리 뷰

728x90
SMALL

연산자 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, 문자는 출력안돼

마지막에 널문자가 없으면 문자배열이야 있어야 문자열배열

문자열은 띄어쓰기에 따라 구분

 

 

728x90
LIST

' > 윤성우 열혈 C 프로그래밍' 카테고리의 다른 글

달팽이 배열  (0) 2020.09.19
포인터2  (0) 2020.09.16
포인터1  (0) 2020.09.14
유클리드 호제법(최대공약수, 최소공배수)  (0) 2020.09.13
정수와 실수의 표현 방식  (0) 2020.09.11
댓글
공지사항