네트워크 보안 수업 17일차 - 코리아 정보보안 IT학원

2016. 4. 20. 16:56네트워크 보안 수업/C언어

반응형

포인터 변수


- 일반 변수

- 배열 변수

- 포인터 변수


- 주소를 다루는 변수


포인터 변수의 선언


int *ptr;


포인터 변수의 초기화


int ptr=0;

int *ptr = null;


*** 포인터 변수의 타입은 가르키려는 메모리의 타입을 나타낸다

*** 포인터 변수는 8바이트 고정 크기(64bit)


포인터 변수의 활용


- 포인터 변수를 통해서 메모리에 직접 접근

- 배열을 전달하는 경우

- 동적 메모리




#include <stdio.h>


int main(int argc, char *argv[])

{

        int *ptr = NULL;


        int arr[5]={1,2,3,4,5};


        ptr=arr;


        printf("ptr size : %d\n", sizeof(ptr));


        printf("arr[0] value: %d \n", *arr);

        printf("arr[0] value: %d \n", *ptr);

        printf("arr[0] value: %d \n", ptr[0]);


        printf("arr addr: 0x%08x \n", arr);

        printf("arr addr: 0x%08x \n", ptr);


        printf("arr addr: 0x%08x \n", arr+1);

        printf("arr addr: 0x%08x \n", ptr+1);


        return 0;

}



#include <stdio.h>


void func(int *a)

{

        printf("val: %d \n",*a);

}


int main(int argc, char *argv[])

{

        int arr[5]={1,2,3,4,5};


        int val = 10;


        func(arr);


        return 0;

}




[과제]:


main함수로부터 배열과 배열의 크기를 전달받아 배열의 총합을 구하는

함수를 작성하세요


그리고 해당 함수가 잘 동작하는지 main함수를 통해서 보여라.


#include <stdio.h>


int func(int *arr, int size)

//int func(int arr[],int size)

{

        int sum=0;

        int i=0;


        for(i=0;i<size;i++){

                sum=sum+arr[i];

        }


        return sum;

}


int main(int argc, char *argv[])

{

        int arr[]={1,2,3,4,5};

        int ret=0;


        ret=func(arr,5);

        printf("array total: %d\n", ret);


        return 0;

}



반응형