배열과 포인터
배열과 포인터는 표현에서 비슷한 점이 많다.
배열 표현식과 포인터 표현식을 interchangably 쓸 수 있다.
#include<cstdio>
int main() {
int val = 10;
int* ptr;
int arr[3] = {1,2,3};
ptr = &val;
// arr = &val;
// 얘는 안된다. arr변수는 '배열'로 선언되었기 때문.
// 한번 세팅하면 주소값을 바꿀 수 없는 const pointer와 비슷한 느낌?
printf("ptr value: %x\n", ptr); // 주소값
printf("ptr pointer: %d\n\n", *ptr); // 10
printf("ptr[0]: %d\n", ptr[0]); // 포인터를 배열처럼
printf("*(arr+1): %d\n", *(arr+1)); // 배열을 포인터처럼. arr이 int형이므로 +1하면 4바이트 주소를 옮겨서 값을 출력한다.
}
'CS > C++' 카테고리의 다른 글
lvalue와 rvalue의 이해, 증감연산자와 앰퍼센드 연산자 (0) | 2022.07.19 |
---|---|
STL sort 함수 사용법 (0) | 2022.07.19 |
scanf 사용시 버퍼에 남은 linefeed 처리 (0) | 2022.07.14 |
우분투에서 scanf()로 EOF 입력하기/받기 (0) | 2022.06.29 |
포인터변수의 이해와 주소연산자 (0) | 2022.06.28 |
댓글