logo

C에서 short int 란 무엇입니까?

C 프로그래밍 언어에서는 짧은 정수 정수 값을 저장하는 데 사용되는 데이터 유형입니다. 와 함께 사용할 수 있는 유형 수정자입니다. int 데이터 유형 일반 int보다 적은 메모리를 사용하여 더 작은 정수 변수를 만듭니다.

그만큼 짧은 정수 데이터 유형이 차지 2바이트 일반 메모리의 절반 크기인 메모리 int 데이터 유형 이며, 다음 범위의 정수 값을 나타낼 수 있습니다. -32,768 에게 32,767 .

Short int의 구문

자바에서 지도 반복하기

짧은 int 변수를 선언하는 구문은 다음과 같습니다.

 short int variable_name; 

예를 들어, 다음 코드는 짧은 정수 age라는 변수:

 short int age = 25; 

짧은 int 변수는 주의 깊게 사용하지 않으면 오류가 발생할 수 있습니다. 그 이유는 값의 범위가 더 작기 때문입니다. 정수 변수 범위를 벗어나는 값을 할당하면 오버플로될 수 있습니다. 이러한 이유로 short int 변수에 할당된 값이 해당 범위 내에 있는지 확인하는 것이 중요합니다.

또한, 짧은 키워드 대신에 짧은 키워드를 사용할 수 있습니다. 짧은 정수 이 유형의 변수를 선언합니다. 따라서 다음 두 선언은 동일합니다.

 short int variable_name; short variable_name; 

기타 추가 세부정보 'short int' 데이터 유형 다음과 같다:

    값의 크기와 범위

앞에서 언급했듯이 short int가 차지합니다. 2바이트 이는 일반 int 데이터 유형의 절반 크기입니다. short int의 크기는 구현에 따라 정의됩니다. 즉, 사용 중인 플랫폼과 컴파일러에 따라 달라질 수 있습니다. 그러나 항상 일반 int보다 작은 것이 보장됩니다.

값 범위 측면에서 short int는 다음 범위의 정수 값을 저장할 수 있습니다. -32,768 에게 32,767 . 이 범위는 다음을 사용하여 결정될 수 있습니다. SHRT_MIN 그리고 SHRT_MAX 상수는 다음에서 정의됩니다. 제한.h 헤더 파일.

    '짧은 정수' 사용

short int 데이터 유형은 일반적으로 메모리 공간이 중요하거나 변수에 저장되는 값의 범위가 short int 범위 내에 있을 때 사용됩니다. 짧은 int가 사용될 수 있는 상황의 몇 가지 예는 다음과 같습니다.

  • 메모리가 제한된 임베디드 시스템에서.
  • 메모리 사용량을 최적화해야 하는 대규모 정수 배열을 생성할 때.
  • 변수에 저장되는 값의 범위가 변수의 범위 내에 있는 것으로 알려진 경우 짧은 정수 , 예를 들어 일반적으로 개인의 나이를 초과하지 않는 나이를 저장합니다. 100 년 .
  • 유형 수정자

그만큼 짧은 int 데이터 유형 유형 수정자입니다. 즉, 다른 데이터 유형과 결합하여 새로운 데이터 유형을 생성할 수 있습니다. 예를 들어, 다음은 유효한 변수 선언입니다.

 short int x; short y; short int *ptr; short int arr[10]; 
    암시적 변환

서로 다른 데이터 유형의 변수 간에 산술 또는 비교 연산을 수행할 때 C에서는 연산이 올바르게 수행되도록 보장하기 위해 암시적 변환을 수행할 수 있습니다. 짧은 int 변수를 사용하는 경우 이러한 변환으로 인해 예기치 않은 동작이 발생할 수 있으므로 주의하는 것이 중요합니다. 예를 들어 다음 코드를 고려해보세요.

 #include int main() { short int x = 300; short int y = 200; short int z = x + y; printf('%d
', z); return 0; } 

산출:

리눅스 디렉토리 이름 변경
 500 

설명:

이 코드에서는 나는 s에는 다음의 값이 할당되었습니다. 500 , 이는 다음을 추가한 올바른 결과입니다. 엑스 그리고 그리고 . 그러나 만약 printf 진술이 다음과 같이 변경되었습니다. printf('%hu ', z), 출력은 244 , 변환한 결과입니다. 500 서명되지 않은 사람에게 짧은 정수 . 이런 일이 일어나는 이유는 %hu 인쇄되는 값이 unsigned short int여야 함을 나타내는 형식 지정자가 사용됩니다.

    승격 및 강등

서로 다른 데이터 유형의 변수 간에 연산을 수행할 때 C는 연산이 올바르게 수행되도록 하기 위해 승격 및 강등을 수행할 수 있습니다. 승격은 더 작은 데이터 유형의 변수가 더 큰 데이터 유형의 변수로 암시적으로 변환될 때 발생하고, 강등은 더 큰 데이터 유형의 변수가 더 작은 데이터 유형의 변수로 암시적으로 변환될 때 발생합니다. 짧은 int 변수를 사용하는 경우 이러한 승격 및 강등이 산술 및 비교 연산 결과에 영향을 미칠 수 있으므로 주의하는 것이 중요합니다.

    기본 초기화

만약 짧은 int 변수 초기화되지 않고 선언되면 해당 값은 정의되지 않습니다. 즉, 음수 값이나 범위 밖의 값을 포함한 모든 값을 포함할 수 있습니다. 짧은 정수 . 따라서 변수를 선언할 때 항상 알려진 값으로 초기화하는 것이 좋습니다.

    주조

주조 변수를 한 데이터 유형에서 다른 데이터 유형으로 변환하는 프로세스입니다. 변수를 캐스팅할 때 짧은 정수 , 변수 값은 다음 범위에 맞게 잘립니다. 짧은 정수 . 예를 들어 다음 코드를 고려해보세요.

 int x = 500; short int y = (short int) x; 

이 코드에서 값은 엑스 ~이다 500 , 이는 short int의 범위를 벗어납니다. 그러나 언제 엑스 로 캐스팅됩니다. 짧은 정수, 값은 다음 범위에 맞게 잘립니다. 짧은 정수 , 를 야기하는 그리고 의 가치를 부여받는다 -12 . 따라서 변수를 캐스팅할 때 결과 값이 캐스팅되는 데이터 유형의 범위 내에 있는지 확인하는 것이 중요합니다.

    서명성

기본적으로, 짧은 정수 부호 있는 데이터 유형 , 이는 양수 값과 음수 값을 모두 나타낼 수 있음을 의미합니다. 그러나 선언하는 것도 가능합니다. 짧은 정수 부호 없는 데이터 유형으로 부호 없는 짧은 정수 또는 부호 없는 짧은 키워드 . unsigned short int는 음수가 아닌 값만 나타낼 수 있지만 범위는 두 배로 늘어납니다. 0 에게 65,535 .

핵심 자바 면접 질문
    호환성

부터 짧은 정수 다음보다 작은 데이터 유형입니다. 정수 , 다음에서 사용될 때 암시적으로 int로 승격될 수 있습니다. 산수 또는 int와의 비교 연산. 이는 다음을 의미합니다. 짧은 정수 어디서나 사용할 수 있습니다. 정수 명시적인 캐스트가 필요 없이 예상됩니다.

    이식성

의 크기 짧은 정수 사용되는 플랫폼과 컴파일러에 따라 달라질 수 있습니다. 다양한 플랫폼에서 코드 이식성을 보장하려면 다음을 사용하는 것이 좋습니다. stdint.h 헤더 파일 , 특정 너비와 부호가 있는 고정 크기 정수 유형을 정의합니다. 예를 들어, int16_t 유형 16비트 부호 있는 정수형 , 이는 다음과 같습니다. 짧은 정수 대부분의 플랫폼에서.

    배열 인덱싱

배열을 선언할 때 짧은 int 값 , 배열의 각 요소는 인덱스를 사용하여 액세스됩니다. 인덱스는 정수 리터럴이거나 int 유형의 변수일 수 있습니다. 그러나 인덱스가 유형의 변수인 경우 짧은 정수 , 자동으로 다음으로 승격됩니다. 정수 어레이에 액세스하는 데 사용되기 전에. 예를 들어:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    비트 조작

짧은 정수 다음과 같은 비트 조작 작업에 사용할 수 있습니다. 이동 그리고 마스킹 . 변속할 때 짧은 정수 값이면 결과는 short int 값입니다. 그러나 다음과 같은 비트 연산자를 사용하는 경우 & 및 |, 짧은 int 값은 작업이 수행되기 전에 먼저 int로 승격됩니다.

    성능

경우에 따라 int 대신 short int를 사용하면 성능이 향상될 수 있습니다. 특히 메모리나 처리 능력이 제한된 플랫폼에서는 더욱 그렇습니다. 그러나 이는 사용되는 특정 애플리케이션과 하드웨어에 따라 다르며 사례별로 테스트해야 합니다.

    접미사를 사용한 초기화

C 언어는 짧은 int 유형으로 변수를 초기화하는 접미사를 제공합니다. 접미사 '에스' 또는 '에스' short int 상수를 명시적으로 지정하기 위해 상수 값과 함께 사용할 수 있습니다. 예를 들어:

 Short int x=10s;