[C언어] sizeof 연산자, double형, unsigned

sizeof 연산자

sizeof 연산자는 단항 연산자로서 피연산자의 메모리 크기를 반환한다.


int val = 10;

printf("%d", sizeof val);

printf("%d", sizeof(int));


피연산자로 자료형의 이름이 올경우에는 괄호를 반드시 넣어줘야한다.

편하게 생각하여 무조건 sizeof() 괄호를 넣어서 사용하도록한다.

잊지 말아야할 것은sizeof는 함수가 아닌 연산자 라는 것이다.


double형


보편적인 실수형 자료형 double형이다.

과거에는 float형이었지만 너무 정밀도가 낮아서(소수 이하 6자리) 정밀도가 높은 double형(소수 이하 15자리)을 보편적으로 사용한다.



double형으로 데이터를 입력받는 경우 서식문자 %f가 아닌 L의 소문자 l 을 덧붙인 %lf이다.

%fdouble형이 아닌 실수형에 사용된다. double형인데 %f값으로 받으면 엉뚱한 값을 받는다.


%d => 정수형

%c => 문자로 출력

%lf => double형

%f  => double형이 아닌 실수형.



unsigned 


기본 자료형 앞에 unsigned를 붙이는 경우 MSB(Most Significant Bit)까지도 데이터의 크기를 표현하는데 사용하므로 데이터의 표현 범위가 양의 값으로 두 배가 된다. 

예) char => -127~128. unsigned char => 0~255 (127 + 128)



MSB(Most Significant Bit) ?

가장 중요한 비트라는 뜻으로 정수를 표현하는데 있어서 가장 왼쪽에 존재 비트이다.

이 비트는 부호를 표현하며 양수라면 '0', 음수라면 '1'을 표시한다. 이 비트 값에 따라서 값의 크기가 전혀달라지므로 가장 중요한 비트이다.


기본 자료형 중에서도 정수형 자료형(char, short, int...) 에만 붙일 수 있다. 실수형 자료형에는 붙일 수 없다.


아스키 코드?

아스키 코드는 범위가 0~127까지이다.


대문자 A => 65. 소문자 a => 97. 대문자가 더 값이 작다. 대문자와 소문자의 값의 차는 32이다.