포인터 #3

이승덱·2021년 7월 21일

CPP

목록 보기
25/70
#include <iostream>

using namespace std;

//포인터와 배열

//포인터혹은 레퍼런스를 반환하는 함수를 작성할 때 반환값이 

//함수의 스택프레임에 잡혀있는 변수의 주소값이 아닌지 꼭 확인해야함

int* TestWrong() {

}

int main()

{

 //주소를 담는 바구니

 //진퉁은 다른 곳

 //p는 단지 그 곳으로 워프하는 포탈

 int* p;

 //진짜배기 원조데이터가 안에 있음

 //닭장처럼 데이터의 묶음

 int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

 //그런데 배열과 포인터를 착각하는 경향이 있음

 //왜 why? 배열의 이름은 배열의 시작 주소값을 가리키는 TYPE* 포인터로 변환가능!

 //TYPE형 1차원 배열과 TYPE*형 포인터는 완전히 호환이 된다.

 p = arr;

 cout << arr[0]<<endl;

 cout << p[0]<<endl;

 cout << *(p + 3) << endl;

 cout << *(arr + 3) << endl;

 //2차원 배열 vs 다중 포인터

 //호환되지 않는다

 int arr2[2][2] = { {1,2},{3,4} };

 //이중 포인터가 아니라 이런 식으로 사용해야함

 //거의 사용하지 않음

 int(*pp)[2] = arr2;

 return 0;

}
profile
공부 기록용 블로그입니다

0개의 댓글