일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- spring
- android facebook
- 자전거
- httpclient post
- 낙동강 종주
- mysql
- volley
- android ImageLoad
- 부산에서 창원 자전거
- 안드로이드 이미지 로드
- 부산에서 창원
- 자바
- 삼량진 자전거
- C언어
- spring boot
- android imageView zoom
- elk stack
- 구포에서 자전거
- android loadImage
- c언어 구조체
- ImageLoad
- laravel
- 구포에서 삼량진
- 창원에서 부산
- NetworkImageView
- 로드바이크
- workbench
- 구조체
- 삼량진
- image zoom
Archives
- Today
- Total
은근한
C언어 14. call by value,call by reference 본문
call by value
함수를 호출할 때 넘겨주는 인자의 값을 함수 정의에 있는 매개변수로 복사해서 전달하는 방식
ex) 값에 의한 전달 방법 (call by value)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include<stdio.h> void swap(int x, int y); //함수선언 void main() { int a=10,b=20; printf("함수호출전 a = %d,b=%d\n",a,b); swap(a,b); //함수호출 printf("함수호출후 a = %d,b=%d\n",a,b); } void swap(int x, int y) //값의 인자가 복사되었다 { int temp; //값이 복사되었다 함수 내에서는 값이 바뀔지라도 temp = x; //함수가 끝이 나면 원본은 그대로 바뀌지 않고 그대로이다 x=y; y=temp; } |
call by reference
변수의 값을 복사해서 전달하는 대신 변수의 주소를 전달하는 방식
ex)
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> void swap(int *x, int *y); void main() { int a =10; int b =20; printf("함수 호출 전의 a=%d ,b =%d\n",a,b); swap(&a,&b); //함수 정의에서 포인터로 선언했기에 주소연산자 &를 붙여서 주소값을 전달 printf("함수 호출 후의 a=%d ,b =%d\n",a,b); } void swap( int *x, int *y) //값을 받을때 주소값을 받기에 주소가 변경되면 다 변경 { int temp; tep = *x; *x = *y; *y=temp; } |