Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자료구조
- sort
- 코테 문제
- 코딩테스트
- tinyml
- dfs문제
- 포스코 ai 교육
- 알고리즘
- tflite
- 포스코 AI교육
- 딥러닝
- DP문제
- DP
- 영상처리
- 삼성역량테스트
- dfs
- 코테
- 삼성역테
- 컴퓨팅사고
- 다이나믹프로그래밍
- 임베디드 딥러닝
- TensorFlow Lite
- bfs문제
- 삼성코딩테스트
- 초소형머신러닝
- MCU 딥러닝
- BFS
- 삼성코테
- 포스코 교육
- 그리디
Archives
- Today
- Total
코딩뚠뚠
Call by [value & reference] 본문
반응형
아는 지인이 면접장에서 Call by value와 Call by reference에 대한 질문을 받았다고 한다. 그 말을 들은 순간 음? 느낌적으로 설명할순있는데 정확히 설명할수가 없네 = 모르는거다 라고 생각해서 포스팅을 하며 정리해보려 한다.
우선 이 둘은 모두 함수 호출방식이다.
호출하는 방식에의 차이에 따라 나눠 놓은 것
1. Call by value
말 그대로 값에 의한 호출 이라는 뜻으로 C언어에는 call by value만 존재한다.
함수 호출시 '값'을 넘겨준다는 뜻이다.
인자로 전달되는 변수를 함수의 매개변수에 복사한다.
인자로 전달한 변수와는 별개의 변수가 되며, 매개변수를 변경해도 원래의 변수에는 영향을 미치지않는다.
-> 원본값을 바꿀 필요가 없다면 call by value 사용
void swap( int a, int b){
int temp;
temp = a;
a = b;
b = temp;
}
2. Call by reference
함수에서 값을 전달하는 대신 주소값을 전달하는 방식
C언어에서 포인터를 사용해서 주소값을 넘겨주게 된다면 이는 Call by adress 일것이다.
하지만 결과적으로 address를 통해서도 call by reference와 같이 사용할 수 있으므로 같이 설명하기도 한다.
void swap( int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
반응형
'공부 > 기타' 카테고리의 다른 글
딥러닝, 데이터분석 pandas 기본사용 (0) | 2021.04.06 |
---|---|
파이썬 self와 __init__ 에 대해 (0) | 2021.04.05 |
Git 개념 및 사용 2 (0) | 2021.02.07 |
Git 개념 및 사용법 1 (0) | 2021.02.07 |
docker 개념과 기본 사용 (0) | 2021.02.04 |