검색결과 리스트
글
Ⅰ. Call-by-value
- 함수를 호출 할 때 단순히 값을 전달하는 형태의 함수호출
< 예제 >
#include <stdio.h>
void change(int n1, int n2){
int temp= n1;
n1=n2;
n2=temp;
printf("(After) Number 1 : %d, Number 2 : %d \n",n1,n2);
}
int main(void){
int num1=10;
int num2=20;
printf("(Before) Number 1 : %d, Number 2 : %d \n",num1,num2);
change(num1,num2);
//printf("Number 1 : %d, Number 2 : %d \n",num1,num2);
-> 사용시 num1과 num2가 바뀌지 않는다 (위에 함수를 int형으로 바꾼뒤 return n1,n2;)
return 0;
}
< 출력결과 >
(Before) Number 1 : 10, Number 2 : 20
(After) Number 1 : 20, Number 2 : 10
Ⅱ.Call-by-reference
- 메모리의 접근에 사용되는 주소 값을 전달하는 형태의 함수 호출
< 예문 >
#include <stdio.h>
void change(int *ptr1, int *ptr2){
int temp = *ptr1;;
*ptr1 = *ptr2;
*ptr2 = temp;
}
int main(void){
int num1=10;
int num2=20;
printf("Number 1 : %d, Number 2 : %d \n",num1,num2);
change(&num1,&num2);
printf("Number 1 : %d, Number 2 : %d \n",num1,num2);
return 0;
}
< 출력 결과 >
Number 1 : 10, Number 2 : 20
Number 1 : 20, Number 2 : 10
sourced by "윤성우 열혈 C 프로그래밍 강의"
'Programming > C' 카테고리의 다른 글
구조체 ( Struct ) (0) | 2015.08.27 |
---|---|
Stack과 Queue (0) | 2015.08.26 |
2차원 배열 (0) | 2015.08.26 |
동적 할당 (0) | 2015.08.26 |
[ Project ] Pascal (0) | 2015.08.26 |
RECENT COMMENT