C 언어 에서 데이터 형식의 길이

5486 단어 데이터 형식
면접 에서 C 안의 int 길 이 는 자주 질문 을 받 습 니 다. 다음은 자료 로 요약 하 겠 습 니 다.
 
우선 일반적인 규정 을 살 펴 보 자.
표준 c 에 따 르 면 int 길 이 는 기계 글자 의 길이 와 같 고 short 의 표현 범 위 는 int 의 표현 범위 보다 크 면 안 되 며 long 의 표현 범 위 는 int 의 표현 범위 보다 작 으 면 안 된다.32 위 플랫폼 (32 위 플랫폼 이란 유 니 버 설 레지스터 의 데이터 폭 은 32) 에서 코드 를 작성 합 니 다. short 는 보통 16 비트 이 고 log 와 int 는 32 비트 입 니 다.16 비트 플랫폼 에서 int 와 short 는 보통 16 비트 이 고 long 은 32 비트 이다.
 
다음은 코드 를 써 서 실제 테스트 를 해 보 겠 습 니 다.
#include <stdio.h>
#include <stdlib.h>

int main(){
 printf("len int = %d
", sizeof(int)); printf("len short = %d
", sizeof(short)); printf("len long = %d
", sizeof(long)); printf("len long long = %d
", sizeof(long long)); printf("len float = %d
", sizeof(float)); printf("len double = %d
", sizeof(double)); char *a= "test"; char b[] = "test"; printf("len *a = %d
", sizeof(a)); printf("len b[] = %d
", sizeof(b)); typedef struct Node{ int value; struct Node* next; }Node; Node node; printf("len struct Node = %d
", sizeof(node)); }

출력 은 다음 과 같 습 니 다:
 len int = 4
 len short = 2
 len long = 4
 len long long = 8
 len float = 4
 len double = 8
 len *a = 4
 len b[] = 5
 len struct Node = 8

예전 에는 C 안에 int 가 16 자리 인 줄 알 았 는데 지금 은 기계 가 32 자리 인 것 같 습 니 다.
 
다음은 sizeof () 와 strlen () 을 구별 합 니 다.
#include #include
int main(){char str[] = "dseww";char* str1 = "dsewaaa";int len = strlen(str);int len1 = strlen(str1);printf("%d",sizeof(str));//6printf("%d",sizeof(str1));//4printf("%d",len);//5printf("%d",len1);//7}
 

좋은 웹페이지 즐겨찾기