1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <stdio.h> SquareByValue(int num) //call-by-value이다. { num *= num; return num; } SquareByReference(int * ptr) //cal-by-reference { int num = *ptr; *ptr = num*num; } int main(void) { int num, num1, num2; scanf("%d", &num); num1 = SquareByValue(num); printf("\ncall-by-value로 계산된 값은 %d입니다.\n", num1); SquareByReference(&num); printf("\ncall-by-reference로 계산된 값은 %d입니다.\n", num); getchar(); getchar(); } | cs |
Call-By-Reference는 C언어에 존재하지 않는 오개념으로 알고있다.
포인터값을 전달하고 역참조를 통해 스왑하는 것이다.
댓글