call by reference 공부중에 질문있어요!!
접시
2023.04.01
#includestdio.h
void swap(int *a, int *b);
int main(void)
{
int val1=10;
int val2=20;
swap(&val1, &val2);
printf(val1의 값:%d \n, val1);
printf(val2의 값:%d \n, val2);
return 0;
}
void swap(int *a, int *b)
{
int k;
k=*a;
*a=*b;
*b=k;
}
위의 소스는 콜바이레퍼런스로 구현한건데요 void swap(int *a, int *b)부분을 int swap(int *a, int *b)로해도 작동에 이상이 없더라구요~ 원래 보이드가 아닌 타입이 있을경우는 반환값이 있어야 하는거 아닌가요? 제가 배울떈 return 해줘서 값을 반환 해줄떄
int ... (int .. )이렇게 쓴다고 배웠거든용..
-
돋가이
배우신데로 하세요.
return 이 없는 int swap(...) 는
a = swap(...);
과 같은 문장에서 컴파일 에러가 발생하지 않아
말도 안되게 고생하는 수가 있습니다. -
쇼콜라데
구지 반환을 해주지 않아도 됩니다.