포인터 변수는 선언된 변수가 차지하는 메모리가 있지만 배열은 없음
char *cStr = "Pointer";
char []arrStr = "Array";
cStr = 1234; //작성할 수 있음
arrStr = 1234; //작성할 수 없음
cStr에는 주소 값을 갖기 위한 메모리 영역이 있지만 arrStr은 할당받지 못하였으므로 사용 X
배열의 주소를 알고 싶으면
cStr = arrStr; //가능. arrStr자체가 배열의 시작부분을 가리키기 때문
cStr = &arrStr; //에러! 배열은 주소가 없으므로
cStr = &arrStr[0]; //가능. 배열의 첫 원소의 주소가 포인터에 들어감
http://forum.falinux.com/zbxe/index.php?mid=gcc&document_srl=804305