IT/솔루션) 난 정말C... 없다구요
-
25장. 함수 중심의 포인터 활용, 메모리의 동적 할당) 문제 25-2 [문제 24-5 다시 풀기]IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:23
25장. 함수 중심의 포인터 활용, 메모리의 동적 할당) 문제 25-2 [문제 24-5 다시 풀기] /* typedef의 다양한 선언 방식을 통해 문제 24-5를 다시 풀어보자. 가장 문제가 되었던 것은 2차원 배열의 주소 값을 반환하는 함수의 정의 방법이었는데, typedef 선언을 이용하면 2차원 배열의 주소 값에 해당하는 반환형을 정의하는 것이 가능하다. */ #include #include typedef int(*inarr3)[3]; // int CompareArr(int(*arr1)[3], int(*arr2)[3]); int CompareArr(inarr3 arr1, inarr3 arr2); int main(void) { int arr1[3][3] = { { 3,2,1 } , { 6,7,2 } ..
-
25장. 함수 중심의 포인터 활용, 메모리의 동적 할당) 문제 25-1 [Call By Reference 형태의 함수 정의] - 2IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:22
25장. 함수 중심의 포인터 활용, 메모리의 동적 할당) 문제 25-1 [Call By Reference 형태의 함수 정의] - 2 /* 예제 25-3를 통해서 두 개의 변수에 저장된 값을 교환하는 함수를 살펴보았는데, 이를 참조하여 세 개의 변수에 저장된 값을 교환하는 함수 Swap3val을 정의해보자. n1 = 5, n2 = 6, n3 = 7 이었다면 함수 호출 후에는 n1 = 6, n2 = 7, n2 = 5가 되어야 한다. */ #include #include void Swap3val(int *n1, int *n2, int *n3); int main(void) { int n1 = 5, n2 = 6, n3 = 7; Swap3val(&n1, &n2, &n3); printf("n1은 %d, n2는 %d,..
-
25장. 함수 중심의 포인터 활용, 메모리의 동적 할당) 문제 25-1 [Call By Reference 형태의 함수 정의] - 1IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:22
25장. 함수 중심의 포인터 활용, 메모리의 동적 할당) 문제 25-1 [Call By Reference 형태의 함수 정의] - 1 /* 참조에 의한 호출의 형태로 Square라는 이름의 함수를 정의하자. 이 함수는 int형 정수로 채워진 변수의 주소 값을 입력 받아서, 변수에 저장된 값의 제곱을 계산한다. 그리고 인자로 전달된 주소 값이 가르키는 변수에 그 계산결과를 저장해야 한다. 예를 들어 정수 5가 저장되어 있는 변수 num의 주소 값을 인자로 전달하면서 Square 함수를 호출하고 나면, 변수 num 에는 25가 저장되어야 한다. */ #include #include #pragma warning(disable : 4996) int Square(int *n); int main(void) { int..
-
24장. 배열과 포인터, 포인터 연산) 문제 24-5 [2차원 배열 포인터의 선언과 활용]IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:21
24장. 배열과 포인터, 포인터 연산) 문제 24-5 [2차원 배열 포인터의 선언과 활용] /* 가로 세로의 길이가 각각 3인 int형 2차원 배열의 주소 값을 두 개 전달 받아서, 배열에 저장된 값의 총 합이 더 큰 배열의 주소값을 반환하는 함수를 정의해보자. 그리고 main 함수에서는 반환된 주소 값을 이용해서 총 합이 더 큰 배열에 저장된 모든 정수들을 출력하도록 정의하자. 다음은 이 문제에 해결에 사용될, 그리고 함수의 인자로 전달될 배열들이다. int arr1[3][3] = {{3,2,1},{6,7,2},{5,1,9}}; int arr2[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; */ #include #include int CompareArr(int(*arr1)[3], int..
-
24장. 배열과 포인터, 포인터 연산) 문제 24-4 [지역변수 및 함수의 주소 값 반환] - 2IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:19
24장. 배열과 포인터, 포인터 연산) 문제 24-4 [지역변수 및 함수의 주소 값 반환] - 2 /* 다음 구조적으로 큰 문제가 있는 문장을 완성시켜라. int * Invarr(void) { int arr[3] = { 1,2,3 }; return arr; } */ #include #include int arr[3] = { 1,2,3 } ; int Invarr(int arr[]) { return arr; } int main(void) { int * ptrarr = Invarr(arr); int i; for (i = 0; i < 3; i++) { printf("%d ", ptrarr[i]); } system("pause"); return 0; } // 배열을 return 하게되면 배열의 주소값을 리턴하게 ..
-
24장. 배열과 포인터, 포인터 연산) 문제 24-4 [지역변수 및 함수의 주소 값 반환] - 1IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:17
24장. 배열과 포인터, 포인터 연산) 문제 24-4 [지역변수 및 함수의 주소 값 반환] - 1 /* 다음 구조적으로 큰 문제가 있는 문장을 완성시켜라. int * Invarr(void) { int arr[3] = { 1,2,3 }; return arr; } */ #include #include int arr[3] = { 1,2,3 } ; int Invarr(int arr[]) { return arr; } int main(void) { int * ptrarr = Invarr(arr); int i; for (i = 0; i < 3; i++) { printf("%d ", ptrarr[i]); } system("pause"); return 0; } // 배열을 return 하게되면 배열의 주소값을 리턴하게 ..
-
24장. 배열과 포인터, 포인터 연산) 문제 24-3 [언제나 동일한 arr[i]와 x(arr+i)]IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:16
24장. 배열과 포인터, 포인터 연산) 문제 24-3 [언제나 동일한 arr[i]와 x(arr+i)] /* arr[i]와 *(arr+i)는 언제나 동일하다. 이러한 특성은 다차원 배열에도 성립한다. 아래의 코드에서 *를 없애서 순수한 배열 접근의 형태로 변경해보자. */ #include #include int main(void) { int arr[3][4] = { { 1 } , { 2 } , { 3 } } ; int i = 0; int j = 0; (*(arr + 2))[3] = 20; //책 좀 이상함 *(arr[1] + 3) = 30; *(*(arr + 2) + 1) = 40; *(*arr + 2) = 50; **arr = 70; for (i=0; i < 3; i++) { for (j=0; j < 4..
-
24장. 배열과 포인터, 포인터 연산) 문제 24-2 [1차원 배열 이름의 포인터 형 결정하기] - 3IT/솔루션) 난 정말C... 없다구요 2019. 4. 18. 18:14
24장. 배열과 포인터, 포인터 연산) 문제 24-2 [1차원 배열 이름의 포인터 형 결정하기] - 3 /* ======== type형 1차원 배열의 이름 = type형 포인터 ============ 위 공식을 적용하여 1차원 배열의 포인터 형을 결정하는 연섭을 해보자. 아래에 제시하는 배열 이름의 포인터형을 결정하고, 그 결정이 옳음을 증명하기 위한 예제를 작성하라. 문제 3. 다음 char형 포인터 배열 이름 sptrarr의 포인터 형을 결정하고, 이를 증명하는 예제를 작성하라. char * sptrarr[3] = {"AAA", "BBB", "CCC"}; */ #include #include int main(void) { char * sptrarr[3] = { "AAA", "BBB", "CCC" } ..