C언어_2차원 배열과 포인터의 관계(2)
앞서 설명했듯이, 배열의 이름은 1차원, 2차원, 3차원 배열에 상관없이 배열의 시작 주소를 나타낸다. 여기에서 추가로 알아야 할 점은 다음과 같다. 1차원 배열에서는 배열 이름 뒤에 첨자를 사용하면, 해당 첨자의 배열 요소를 가리킨다. 2차원 배열에서는 배열 이름 뒤에 행 첨자를 사용하면, 해당 행의 시작 주소를 가리킨다.예시를 위해, 2차원 배열 b가 있다고 가정해보자. int b[4][3]; b[0] 은 0행의 시작 주소,b[1] 은 1행의 시작 주소, b[2] 는 2행의 시작주소를 가리킨다. 그리고 2차원 배열의 각 원소에 접근하기 위해서는 인덱스가 2개씩 붙어야 한다.( b[0][0], b[0][1], b[1][0], b[1][1]...). 이제 배열 이름의 증감에 따른 변화를 살펴보도록 ..
c언어_2차원 배열과 포인터의 관계(1)
2차원 배열에서는 포인터의 역할이 더 복잡해진다.2차원 배열은 행과 열로 구성되는데, 1차원 배열에서 배열의 이름은 배열의 첫 번째 요소의 주소를 가리켰다면, 2차원의 경우 배열 이름은 첫 번째 행의 첫 번째 요소를 가리킨다. 자세한 설명을 위해, 2차원 배열 a, b 가 있다고 가정하자. int a[3][2];int b[4][3]; 배열의 이름은 1차원이든 2차원이든 무조건 그 배열의 시작 주소이다.즉, a,b 라는 배열의 이름은 그 배열의 시작 주소를 나타내는 포인터이다. 1차원 배열에서, 배열의 이름을 1씩 증가할 때,int형이면 4바이트씩 증가하고,double이면 8바이트씩 증가하고,char면 1바이트씩 증가한다. 자, 그러면 2차원 배열의 포인터도 int 타입이니까 무조건 4바이트씩 증가할까..