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) 데이터 수정

배열에서는 대입된 데이터의 일부만 수정할 수도 있지만 포인터에서는 불가.

배열을 함수의 인자로 사용하면 컴파일러가 알아서 포인터로 치환한다.

-> 즉, 배열이 아니라 배열의 시작 주소(포인터)를 넘긴다.

'기초 C++ 스터디' 카테고리의 다른 글

4-10. 다차원 배열  (0) 2023.05.23
4-9. 멀티 포인터  (0) 2023.05.23
4-6. 배열  (0) 2023.05.22
4-5. 포인터 vs 참조  (0) 2023.05.11
4-4. 참조  (0) 2023.05.11