2차원 배열을 함수의 매개변수로 전달하는 예제는 여러 가지 방법으로 구현할 수 있다. 여기서는 일반적인 2차원 배열을 함수로 전달하는 몇 가지 방법을 알아보자. 1. 열 크기를 명시하여 전달2차원 배열을 함수로 전달할 때, 함수 매개변수에서 배열의 열 크기를 명시해야 한다. 예를 들어, 3x4 배열을 전달하는 경우는 다음과 같이 작성할 수 있다.#include // 함수 정의: 열의 크기를 명시void printArray(int rows, int cols, int arr[rows][cols]) { for (int i = 0; i 위 예제에서는 printArray 함수가 arr 배열의 크기를 알기 위해 rows와 cols를 매개변수로 받는다. 2. 배열 포인터 사용배열 포인터를 사용하여 2차..
2차원 배열을 포인터를 사용하는 방법은 다음과 같다.배열 포인터 사용이중 포인터 사용 # 배열 포인터 사용2차원 배열을 가리키는 포인터는 배열 포인터로 사용할 수 있다.int arr[3][4];int (*p)[4] = arr; 위의 예제에서 p는 배열 포인터가 된다. 배열 포인터를 정의 시 열의 크기(여기서는 4)를 명시해야 한다. 이렇게 만든 배열 포인터는 기존 방식으로 요소에 접근할 수 있다.p[1][2] = 10;int a = p[1][2]; 2차원 배열 포인터를 만든다면 다음과 같이 이중 포인터를 사용해야 한다고 생각할 수 있다. 하지만 arr은 int (*)[4]이기 때문에 int **에 대입할 수 없다.int **p = arr; // 에러 # 이중 포인터 사용이중 포인터를 이용하여 2..
C언어에서 포인터를 상수로 만드는 방법은 3가지가 있다. 그리고 각 상수들은 서로 기능이 조금씩 다르다.포인터 상수 : 포인터가 가리키는 값을 변경할 수 없고, 포인터가 가리키는 주소를 변경할 수 있다.상수 포인터 : 포인터가 가리키는 주소를 변경할 수 없고, 포인터가 가리키는 값을 변경할 수 있다.상수 포인터 상수 : 포인터가 가리키는 주소와 값을 변경할 수 없다. 포인터 상수 (Pointer to Const)const int *p;int const *p; // 이렇게도 가능하지만, 잘 사용하지 않는다. 포인터 상수가 가리키는 주소를 변경이 가능하다.// 포인터 상수가 가리키는 주소를 변경할 수 있다.p = &a;p = &b; 하지만 포인터 상수가 가리키는 값을 변경할 수 없다.*p = 0; /..