정말 오랜만에 뵙는
보단
2023.04.01
안녕하세요정말 오랜만에 뵙는듯하네요.요즘 뭐 그리 사는게 바쁜지...사이트 자주 온다고해도 못오구....ㅠ후회막심하네요...아 여기 제가 예~전에 짠 코드 이거 갑자기 보니까뭐가 뭔지 몰라서 질문드립니다...
#include stdio.h
void swap(int* a, int* b);
int main(void){ int val1=10; int val2=20;
printf(before val1 : %d \n, val1); printf(before val2 : %d \n, val2);
swap(&val1, &val2);
printf(after val1 : %d \n, val1); printf(after val2 : %d \n, val2);
return 0;
}
진짜 오랜만에 보는것같네요...여기서 포인터하는데 왜 스왑이라는 함수를 집어너서갑자기 value인가 그런 한수가 중간에 왜 10이고 20이고포인트가 이 문제에서 어떻게 쓰였나 궁금도해서이렇게 여쭤봅니다!
-
회사원
일단 함수 선언만 있고 함수 정의는 없네요. 그러니 포인터가 어떻게 쓰였나는 아무도 모르죠.
의미상 swap은 바꾼다는 의미입니다. 그것을 swap()함수의 정의가 존재한다는 가정하에
main()함수 내에서만 접근되는 변수 val1, val2의 주소를 swap의 인자로 넘겨 main()이 아닌 외부 함수에서 val1, val2가 갖고 있는 값을 서로 바꾸는 것이죠.