(8-4)Pointer

C/C언어 이론 2018. 10. 3. 18:48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
 
// [선언]
void PrintArr( int * pArr, int iArrLen );
 
void main()
{
    int iArr1[5]    = {10,20,30,40,50};
    int iArr2[10]    = {1,2,3,4,5,6,7,8,9,10};
    int iArrLen        = 0;
 
    // 배열의 모든 요소를 출력하는 함수를 만들고 호출하자!
 
    // 함수 내부에서는 배열의 길이를 알 수 없기 때문에,
    // 함수 호출 전에 미리 길이를 구해서 같이 전달한다.
    iArrLen = sizeof(iArr1) / sizeof(iArr1[0]);
    PrintArr( iArr1, iArrLen );
 
    iArrLen = sizeof(iArr2) / sizeof(iArr2[0]);
    PrintArr( iArr2, iArrLen );
}
 
// [정의]
void PrintArr( int * pArr, int iArrLen ) // 길이는 전달받아야만 알 수 있다.
{    // pArr = iArr1 이기 때문에, 배열처럼 사용할 수 있다.
    int i = 0;
 
    //int iArrLen = 0;
    //            전체 크기 / 첫 번째 요소 크기 = 요소 개수
    // iArrLen = sizeof(pArr) / sizeof(pArr[0]);
    // 함수 안에서는 포인터변수만 가지고서 절대로 배열의 길이를 구할 수 없다.
    
    printf("배열의 모든 요소 : ");
    for(i = 0; i < iArrLen; i++)
    {
        printf("%d ", pArr[i]);
    }
    
    printf("\n");
}
cs



'C > C언어 이론' 카테고리의 다른 글

(9-2)struct  (0) 2018.10.03
(9-1)struct  (0) 2018.10.03
(8-3)Pointer  (0) 2018.10.03
(8-2)Pointer  (0) 2018.10.03
(8-1)Pointer  (0) 2018.10.03

설정

트랙백

댓글