상세 컨텐츠

본문 제목

1.6일차 포인터어..억 C언어

코딩

by Davinc2 2022. 12. 5. 19:38

본문

포인터 두번째를 해보아요...

 

#include <stdio.h>
void swap(int pa, int pb) { //a ,b값이 차례로 pa,pb에 들어감
int tmp;
tmp = pa;     //pa 값을 tmp에 저장
pa = pb;      //pb 값을 pa에 골~
pb = tmp;     //tmp값을 pb에 넣으면 15이겠쥬
}
int main() {
int a = 15, b = 25;
swap(a, b);                            //위로 가서 pa=15 , pb=25을 각각 넣어줌
printf("%d %d\n", a, b);         //근데 바뀐건 pa,pb지 a,b가 아니라서 그대로 15,25 출력
return 0;
}

출력 값 =15,25

 

그러나...

 

#include <stdio.h>
void swap(int *pa, int *pb) {   2.주소값 을 각각 pa pb에 저장 주소값임 주소값!!
int tmp;
tmp = *pa;      3.   15을 넣어줌 주소가 가르키는 값을 넣어줌
*pa = *pb;      4.  *pa는 pb가 가르키는 주소의 값인 25을 넣어줌
*pb = tmp;     5.이건 15가 들어가겠죠?3에서 했던
}
int main() {
int a = 15, b = 25;
swap(&a, &b);                        1.주소값을 저장   값말구 주소!
printf("%d %d\n", a, b);          6.  25 15 로 바뀝니다 
}

요거는 출력값이 25 15

 

훈수 둬주시면 감사합니다. 공부한걸 메모하고 배우고 싶어서 만들었습니다.

관련글 더보기