기초 C++ 스터디
4-7. 포인터 vs 배열
Crat3
2023. 5. 22. 18:28
1. 포인터와 배열의 차이
(1) 데이터 저장
int main()
{
const char* test1 = "Hello world"; // 포인터 형태
char test2[] = "Hello world"; // 배열 형태
return 0;
}
포인터를 사용하면 test1의 시작 주소에서 1바이트씩 한개의 문자열을 저장한다.
ex) Hello world = [시작 주소] / [H] [e] [l] [l] [o] [w] [o] [r] [l] [d] [\0]
배열을 사용하면 문자열을 4바이트씩 끊어서 저장한다.
ex) Hello world = [H] [e] [l] [l] / [o] [w] [o] [r] / [l] [d] [\0]
여기서 test2(의 배열 이름)는 시작 주소이다.
(2) 데이터 수정
배열에서는 대입된 데이터의 일부만 수정할 수도 있지만 포인터에서는 불가.
배열을 함수의 인자로 사용하면 컴파일러가 알아서 포인터로 치환한다.
-> 즉, 배열이 아니라 배열의 시작 주소(포인터)를 넘긴다.