2011. 11. 2. 11:24
sizeof
sizeof 연산자는 피연산자를 저장하는데 필요한 메모리 바이트수를 리턴한다.
return과 마찬가지로 함수가 아니고 연산자이므로, 괄호가 필요하진 않다.
결과는 모두 같다. 하지만 sizeof의 피연산자로 타입이 오는 경우, 괄호는 꼭 써줘야 한다.
sizeof 연산이후 나오는 결과값은 unsigned int형이다.
literal constant
5, 7 등의 정수는 기본적으로 signed int 형으로 취급한다.
3.4, 5.0, 9. 등은 기본적으로 double 형으로 취급한다.
1.2f, 20f 등 f를 명시한 상수는 float 형으로 취급한다.
'a', 'b' 등은 기본적으로 signed int 형으로 취급한다.
char 형도 수식에선 각각을 int 형으로 취급하여 계산한다.
float 형과 double형이 섞인 수식은 double 형으로 취급한다.
float 형 끼리의 수식은double 형으로 취급하는 시스템도 있다.
최근 표준에선, double로 취급하지 않고 float로 계산한다.
sizeof 연산자는 피연산자를 저장하는데 필요한 메모리 바이트수를 리턴한다.
return과 마찬가지로 함수가 아니고 연산자이므로, 괄호가 필요하진 않다.
int age = 16;
printf("%u\n", sizeof(age) );
printf("%u\n", sizeof age );
결과는 모두 같다. 하지만 sizeof의 피연산자로 타입이 오는 경우, 괄호는 꼭 써줘야 한다.
printf("%u\n", sizeof(int) );
printf("%u\n", sizeof int ); // 에러!!
sizeof 연산이후 나오는 결과값은 unsigned int형이다.
char x;
printf("%u\n", sizeof( sizeof x )); // unsigned int의 크기인 4가 출력됨
literal constant
5, 7 등의 정수는 기본적으로 signed int 형으로 취급한다.
3.4, 5.0, 9. 등은 기본적으로 double 형으로 취급한다.
1.2f, 20f 등 f를 명시한 상수는 float 형으로 취급한다.
'a', 'b' 등은 기본적으로 signed int 형으로 취급한다.
char 형도 수식에선 각각을 int 형으로 취급하여 계산한다.
float 형과 double형이 섞인 수식은 double 형으로 취급한다.
float 형 끼리의 수식은
char c = 'a';
printf("%u\n", sizeof(c)); // c는 char형이므로 1이 출력된다.
printf("%u\n", sizeof('a')); // 하지만 'a'는 int형으로 취급하여 4가 출력된다.
printf("%u\n", sizeof(c+c)); // char형끼리의 연산은 int형으로 취급하여 계산한다.
// 따라서 4가 출력된다.
'c/c++' 카테고리의 다른 글
[c언어] strtok 사용법 및 쓰레드에서 사용시 유의사항 (0) | 2011.11.02 |
---|---|
[c언어] 변수 초기화 (0) | 2011.11.02 |
[c언어] <math.h>의 sqrt()를 이용하지 않고 제곱근 구하기 (0) | 2011.11.01 |
[c언어] 2차원 배열 동적 할당하기 (23) | 2011.11.01 |
[c언어] Quick Sort 소스코드 (0) | 2011.11.01 |