본문 바로가기
Ghost의 Linux C Note(노트)/Ghost의 Linux C언어 배열 포인터

Go to the Hell?~~~

by dark ghost 2012. 5. 29.
728x90
반응형

배열 포인터.

1. 이 번엔 어렵다는 배열과 포인터를 같이 써본 프로그램이다. 알다시피 배열도 주소이고 포인터도 주소이다. 그래서 이 프로그램에서 실험을 해보았다.

int array[3][4] = {{15, 23, 45, 56},

{34, 52, 76, 23},

{43, 62, 91, 84}};

2. int 형 array 라는 이름으로 배열을 선언한 동시에 초기화를 시켰다. 배열은 항상 시작할때 위의 그림처럼 초기화를 시켜야 한다.

printf("%d ", array[i][j]);

3. printf 문에서 배열형식으로 array 구문을 넣었다. 그리고 보통 배열이 아닌 다차원 배열로 2차원 배열을 쓴 것이다.

1) array[2][3] = 30;

2) *(*(array+0)+3) = 23;

4. 위 구문은 2차원배열과 포인터형식을 같이 사용하여 값을 바꾸는 구문이다. 1번구문을 2번 구문으로 바꿔서 사용 할수 있는데 2번 구문은 위치가 다른 곳에 값을 바꾼것이다. 1번 구문에서 [2]는 배열에서 행을 나타내고 [3]은 열을 나타낸다. 그 것을 2번 구문에서는 array+0 이라고 해서 +0 이 행이고 +3이 열이다.

printf("%d ", *(*(array+i)+j)); 

5. printf("%d ", array[i][j]); 이 구문을 포인터 형식으로 바꾼 것이다.

 

 6. test2 파일을 실행 시킨 화면이다. [0][3]부분이 상단에 출력된 결과와 다른것을 볼수 있고 마찬가지로 [2][3]부분도 상단에 출력된 결과과 다른 것을 볼수 있다. 소스 부분에서 배열 형식으로 한 부분과 포인터 형식으로 한 부분이 결과적으로는 똑같다는 것을 알 수 있다.

728x90
반응형

댓글