69.1 과 68.5 의 차이
, 송 찬희님이 작성69.1 의 경우에는
int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } int mul(int a, int b) { return a * b; } int div(int a, int b) { return a / b; }
이런식으로 함수를 쓸때 포인터 매개변수를 사용하지 않는데 ,
68.5의 경우
int add(int *a, int *b) { return *a + *b; } int sub(int *a, int *b) { return *a - *b; } int mul(int *a, int *b) { return *a * *b; } int div(int *a, int *b) { return *a / *b; }이렇게 포인터 매개변수를 사용합니다. 둘다 밖에의 변수에 영향을 주는 목적이 같은데 왜 하나는 포인터를 사용하고 다른하나는 사용하지 않는지 궁금합니다.. ㅠ
Re: 69.1 과 68.5 의 차이
, 도장_ 관리자님이 작성포인터 변수를 인자로 전달하는 방법을 설명하는 예시일 뿐입니다.
return 값으로 받는 것은 동일하지만,
만일 a 값을 바꾼다면
68.5의 예제는 바깥의 a값이 바뀌지 않습니다.
69.1의 예제는 바깥의 a값이 바뀝니다.
*a = *a + 10;
같은 코드를 add 함수 안에서 실행한다면
호출한 쪽에서도 *a의 값이 바뀝니다.
이후 UNIT에서도 반복하면서 학습하게 되어 있으니 계속 학습하면서 포인터 사용을 반복하면 자연히 이해하게 됩니다.