가능한 중복 :
Difference between using character pointers and character arraysCONST 숯불 myVar에 * 대 const를 문자 myVar에 []
의 차이 무엇 하나있을 경우
const char* myVar = "Hello World!";
const char myVar[] = "Hello World!";
은?
가능한 중복 :
Difference between using character pointers and character arraysCONST 숯불 myVar에 * 대 const를 문자 myVar에 []
의 차이 무엇 하나있을 경우
const char* myVar = "Hello World!";
const char myVar[] = "Hello World!";
은?
포인터를 다시 할당 할 수 있습니다. 배열을 다시 할당 할 수 없습니다.
sizeof(ptr) == size of a pointer, usually 4 or 8
sizeof(arr) == number of characters + 1 for null terminator
먼저 포인터입니다 : 다른 사람들이 말했듯이 또한
const char* ptr = "Hello World!";
const char arr[] = "Hello World!";
ptr = "Goodbye"; // okay
arr = "Goodbye"; // illegal
.
시스템의 모든 포인터의 크기는 동일합니다.
두 번째 선언의 배열 크기는 문자열 리터럴에 \0
을 더한 크기와 같습니다.
첫 번째 포인터가 같은 유형의 다른 변수를 가리킬 수 있습니다.
배열을 재 할당 할 수 없습니다.
첫 번째 포인터는 sizeof(myVar) == sizeof(void*)
입니다. 그것은 상수가 아니므로 수정할 수 있습니다 : myVar++
.
두 번째 줄은 sizeof(myVar) == 13
입니다.
+1 이것은 주어진 질문에 대한 더 적절한 대답이라고 생각합니다. – Chad