카테고리 없음
[아는대로써보기] C++ 포인터 - 3
Youngil_Koh_Ph.D
2020. 9. 15. 16:14
int arr[] = {1,2,3};
1. 배열은 포인터변수의 성격을 가짐
cout << arr << endl;
을 해보면, 배열의 경우 해당 값이 저장되어있는 메모리주소의 시작부분이 출력됨.
cout << *arr << endl;
따라서 아래의 코드 처럼 출력하면, arr[0]의 값이 출력됨
2. 하지만 배열의 메모리주소 변경은 불가
int arr[] = {1,2,3};
int num = 7;
int *arr = # // 컴파일 에러
그렇다고 위의 코드 처럼 메모리주소값 변경은 불가함.
포인터변수의 성격을 가지나, 주소값 변경을 안되므로, 포인터상수의 성격을 가짐
3. arr VS &arr 의 출력값은 같지만, 변수형은 다르다!
cout << arr + 1 << endl;
cout << &arr + 1 << endl;
은 서로 다른 결과를 출력함
4. arr + k = &arr[k]
arr에 정수 k를 더하면, k+1번째 값의 주소를 의미함