검색결과 리스트
글
<2차원 배열과 1차원 포인터 변수>
이번에는 1차원 포인터 변수에 2차원 배열의 시작주소를 대입해 2차원 배열에 접근하는 방법을 알아보자.
<실습>
-결과-
왜 오류가 날까? 여기서 p는 2차원 배열의 행과 열을 전혀 알지 못한다.
단지 p가 알고있는 사실은 배열의 첫 주소만 알 뿐이다.
바로 여기서 p가 2차원 포인터 변수가 아닌 1차원 배열 포인터 변수라는 사실을 말해준다.
그러므로 p는 1차원적으로 2차원 배열에 접근하게되는 것이다.
만약 여기서 p에 1을 더해서 p[0]+1과 같이 한다면 행단위로 움직이는 것이 아니기 때문에 적합하지않다. 1차원 포인터 변수인 p는 1차원 포인터 변수처럼 행동해야 한다.
즉, p+i라고 해야지 다음 주소를 알아낸다.
2차원 배열에 저장되어 있는 원소들은 p가 접근하기에 1차원 배열처럼 접근할 것이다.
p+0은 첫번째에 저장되어 있는 원소의 주소, p+1은 두번째에 저장되어 있는 원소의 주소...이렇게 말이다. 왜냐? +1씩 할때마다 행 단위로 움직이는 것이 아니기 때문이다.
1차원 포인터 배열이라는 것을 명심하자
<실습>
-결과-
'Programming > C' 카테고리의 다른 글
C언어 - 포인터배열 (0) | 2016.05.19 |
---|---|
C언어 - 배열 포인터 변수 (0) | 2016.05.18 |
C언어 - 포인터와 1차원 배열 (0) | 2016.05.16 |
C언어 - 함수 포인터 (0) | 2016.05.15 |
C언어 - 포인터(Pointer) (0) | 2016.05.14 |
RECENT COMMENT