sizeof 연산자 (C)
sizeof 연산자 피연산자 형식의 개체를 저장 하는 데 필요한 바이트 만큼 저장소를 제공 합니다.이 운영자 프로그램에서 종속 컴퓨터 데이터 크기를 지정 하지 않으려면 있습니다.
sizeof unary-expression
sizeof ( type-name )
설명
피연산자는 두 식별자입니다 있는 단항 식, 또는 형식 캐스트 식 (괄호 안에, 형식 지정자).해당 단항 식 비트 필드 개체, 형식, 또는 함수 지정자를 나타낼 수 없습니다.결과 부호 없는 정수 계열 상수입니다.표준 헤더 STDDEF입니다.H이이 유형으로 정의 size_t.
적용할 때의 sizeof 연산자를 배열 식별자로 결과입니다 배열 식별자가 나타내는 포인터 크기 보다는 전체 배열의 크기입니다.
적용할 때 해당 sizeof 구조체 또는 공용 구조체 형식의 이름 또는 식별자에 구조체 또는 공용 구조체 형식의 연산자를 결과 구조체나 공용 구조체, 내부 및 후행 패딩을 포함 한 바이트의 수입니다.이 크기는 구조체나 공용 메모리 경계에서 구조체의 멤버를 정렬 하는 데 사용 하는 내부 및 후행 안쪽을 포함 됩니다.따라서 결과를 개별 멤버의 저장소 요구 사항을 추가 하 여 계산 된 크기에 다를 수 있습니다.
마지막 요소는 구조체의 배열 크기가 지정 되지 않은 경우는 sizeof 연산자 없이 배열 구조체의 크기를 반환 합니다.
buffer = calloc(100, sizeof (int) );
예제는 sizeof 연산자의 크기를 전달 하는 int, 컴퓨터 간에 다르며 이라는 런타임 함수에 인수로 calloc.함수에 의해 반환 되는 값은 buffer.
static char *strings[] ={
"this is string one",
"this is string two",
"this is string three",
};
const int string_no = ( sizeof strings ) / ( sizeof strings[0] );
이 예제에서 strings 에 대 한 포인터의 배열입니다 char.포인터의 수는 배열에 있는 요소의 수입니다 하지만 지정 되지 않았습니다.사용 하 여 포인터의 수를 결정 하는 것이 더 쉽습니다는 sizeof 배열에 있는 요소의 수를 계산 하는 연산자입니다.해당 const 정수 값 string_no 이 수 하도록 초기화 됩니다.이 const 값을 string_no 는 수정할 수 없습니다.