2012-03-10 6 views

답변

6

문자열 리터럴 "abcde"배열입니다. 널 (NULL) 종결자를 포함하여 6 바이트 길이입니다.

char* 유형의 변수는 문자에 인 포인터입니다. 크기는 32 비트 시스템에서 4 바이트 인 포인터의 크기입니다. sizeof은 컴파일 시간 작업 이므로 변수 유형 (이 경우 char*) 만 봅니다. 무엇이 지적되고 있는지 전혀 모른다. 가변 길이 배열의 C99 언어 표준

2

첫 번째 예에 도입 된 기능의 경우를 제외하고

는 †, 일반 문자열의 길이를 반환 sizeof().
두 번째 예가
-> 32 비트이므로 포인터의 크기는 입니다. 따라서 4 바이트가됩니다.

1

여기에 있기 때문에

printf("%d\n", sizeof("abcde")); 

은 NULL의 6 바이트가 긴 고려하여, 문자열입니다.

char* str = "abcde"; 
printf("%d\n", sizeof(str)); 

:-) 따라서 4 바이트의 32 비트를 필요로하는 포인터
관련 문제