ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • c언어 포인터 공부
    코딩공부 2022. 4. 14. 23:56
    728x90
    반응형

    포인터를 이용하면 주소와 값을 확인하거나 값을 변경할 수 있다.

    int warren = 1;
    //warren은 1이라는 값을 갖는다.
    
    printf("warren이 저장된 주소 : %d, 값 : %d", &warren, warren);
    
    //-------------------------------------------------------
    int * bill;
    //bill이라는 포인터를 만들었습니다.
    bill = &warren;
    //bill(포인터)는 warren의 주소를 갖습니다.
    printf("bill이 찾아간 warren의 주소는 : %d, 값 : %d",bill,*bill);
    
    bill = &warren;
    *bill = *bill * 100;
    //이런식으로 값을 변경할 수 있습니다.
    printf("bill이 찾아간 warren의 주소 : %d, 변경된 값 : %d",bill,*bill)
    
    //-------------------------------------------------------
    int * spy = bill;
    *spy = *spy - 2;
    printf("spy가 찾아간 warren의 주소 : %d, spy가 변경한 값 : %d",spy, *spy);

    배열을 통해 알아보기

    int arr[3] = {5,10,15};
    
    int * p;
    
    p = &arr;
    //p = &arr[0] 과 같은 의미이다.
    
    for (int i = 0; i < 3; i++);
    {
    	printf("arr[%d]의 주소는 %d, 값은 %d \n",i, p, *p);
    }

    값 바꾸기

    void swap(int a, int b);
    void swap_adr(int * a, int * b);
    
    int main(void)
    {
    	int a = 10;
    	int b = 20;
    
    	printf("Swap 함수 전 >> a : %d, b: %d \n",a,b);
    	swap(a,b)
    	printf("<값만 복사>Swap 함수 후 >> a : %d, b : %d \n",a,b);
        
        swap_adr(&a,&b)
        printf("<주소값 전달>Swap 함수 후 >> a : %d, b : %d \n",a,b);
    	return 0;
    }
    
    void swap(int a, int b)
    {
    	int temp = a;
        a = b;
        b = temp;
    }
    
    void swap_adr(int * a, int * b)
    {
    	int temp = *a;
    	*a = *b;
    	*b = temp;
    }
    728x90
    반응형
Designed by Tistory.