프로그래밍

 3198, 1/160 회원가입  로그인  
   capt_0669
   포인터 질문 3

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2844 [복사]


질문2 가 아직 답이 안되있어요ㅠ.ㅠ
읽어주세요.....ㅠ.ㅠ

질문 3은

#include <stdio.h>
void swap (int*pa, int*pb, int*pc)
{
        int temp;
        temp=*pa;
        *pa=*pc;
        *pc=*pb;
        *pb=temp;
}

int main(void)
{
        int a=10, b=20, c=30;

        printf("스왑하기전: %d %d %d\n", a,b,c);
        swap(&a,&b,&c);
        printf("스왑한후: %d %d %d\n", a,b,c);

        return 0;
}

이것은 되는데
temp를 포인터로 바꾸면 어떻게되는지 궁금해서
        int *temp;
        *temp=*pa;
        *pa=*pc;
        *pc=*pb;
        *pb=*temp;
이렇게 했더니
temp가 initialize가 안됬다네요....

함수안에서는 포인터를 못만드나요??
(int* a,int* b,int* c)는 되는데
{
int *blah                  는 안되나요??
}

  Hit : 4407     Date : 2011/01/07 08:42



    
gamja initialize가 안됐다는건 초기화가 안됐다는거에요

int *temp;
*temp=*pa;

temp는 어떠한 변수를 가리키고 있지도 않은데 temp가 가리키는 변수에 값을 대입하려 했기 때문이죠.
2011/01/08  
capt_0669 *temp=&*pa
이것을 붙혔더니 되네요

역시 제 예상되로 이렇게한 결과는 30 30 20 나왔어요
2011/01/08