개인노트
1차원 배열의 이름은 포인터가 될 수 있지만 2차원 배열의 이름은 포인터가 될 수 없다.1차원 배열은 (배열의 이름 = 배열의첫번째요소 [0]) 였지만 밑의 그림을 보면 크기가 다른 것을 알 수 있다.2차원 배열 arr이름의 크기는 배열 전체의 크기인 21이, 배열의 첫번째요소는 1행에 해당하는 크기가 나왔다.이로 인해 1차원 배열과 달리 2차원 배열의 이름은 첫번째 요소와 서로 다르다는 것을 알 수 있다. #include #include "stdlib.h" int main(void) {int arr[2][3]; printf("%d\n", arr);printf("%d\n", arr[0]);printf("%d\n", &arr[0][0]);printf("\n");printf("%d\n", arr[1]);pr..
문제) 두개의 포인터 변수와 길이가5인 배열은 선언한 뒤 함수하나를 정의하여 함수를 호출했을 때 배열요소의 주소값중 가장 큰 주소값과 가장 작은 주소값이 출력되게 해보자. Q) 17-1.c #include #include "stdlib.h" void MaxnMin(int *arr, int **mxptr, int **mnptr) {int i, *max, *min;max=min = &arr[0]; for (i = 0; i arr[i])min = &arr[i];}*mxptr = max;*mnptr = min;} int main(void) {int arr[5];int *maxptr, *minptr;int i;for ..
* 더블 포인터란?더블 포인터란 포인터를 참조하는 포인터를 말하며, 일반적인 포인터는 싱글 포인터라고도 한다. int num=10; // 변수 선언int *ptr = # // 포인터 ptr에 num의 주소값을 초기화하여 num을 가리킴 (싱글 포인터)int **dptr = &ptr; // 포인터 dptr에 포인터 ptr의 주소값을 넣어서 결국엔 num을 가리키게됨 (더블 포인터) 밑의 예제 1을 보면 num1과 num2의 주소값을 포인터변수 ptr에 초기화 한 다음 함수를 이용하여 num1,2에 저장된 값을 바꾸려고 한다.하지만 컴파일을 해보면 값을 변하지 않고 그대로이다. 왜인지 생각해보고 답을 찾았다면 예제2를 보자. 예제1.c #include #include "stdlib.h" void Sw..