Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
250x250
Tags
- 이기적
- 빅데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- 인공지능기초다지기
- 프로그래머스
- 정보처리기사
- 데이터베이스
- SQL
- 난생처음 R코딩&데이터 분석 저서
- boostcoures
- 코딩테스트 python
- [멀티잇]데이터 시각화&분석 취업캠프(Python)
- AI 플랫폼을 활용한 데이터 분석
- Machine Learning
- 부스트코스
- 코딩테스트
- 빅분기
- PY4E
- 네이버부스트캠프
- 이것이 취업을 위한 코딩테스트다 with 파이썬
- r
- 파이썬
- Oracle
- python
- DB
- 오라클
- 빅데이터분석기사
- boostcourse
- Ai
- 기초다지기
- 데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- Today
- Total
매일공부
[정처기 4과목] 값에 의한 전달 vs 참조에 의한 전달(C언어) 본문
* 2023 이기적 환상의콤비 정보처리기사 교재 1-328p, 1-333p & [정보처리기사_환콤] 4-2-3.자료 구조와 포인터 강의 참고
값에 의한 전달(Call By Value)
인수를 통해 전달 되는 값 == 복사된 값
void half(int h){
h = h/2;
}
int main()
{
int a=20;
int b=a;
a++;
printf("%d %d\n", a, b); //21 20
half(b);
printf("%d %d\n", a, b); //21 20
}
half에 전달되는 변수b 와 main에 사용한 변수b 는 서로 다른 값을 가짐
>> 파이썬에서의 지역변수로 생각하면 이해하기 쉬움
>> 즉, half함수의 지역변수b와 main함수의 지역변수b는 각각의 함수 안에서만 사용 가능
>> 파이썬에서는 해당 함수의 반환값을 변수로 받아주면 되지만 C에선 불가능
main의 변수b값을 변경하려면?
변수b 데이터의 주소값으로 직접 데이터에 접근해야함!
참조에 의한 전달(Call By Reference)
- 포인터 : 주소값으로 특정 데이터에 접근할 수 있는 기능
- & : 해당 식별자의 주소값 도출
- * : &<변수명>의 위치로 접근
void half(int *h){
*h = *h/2; //2. h가 받은 데이터 주소값인 변수b값이 변경됨
}
int main()
{
int a=20;
int b=a;
a++;
printf("%d %d\n", a, b); //21 20
half(&b); //1. 변수b의 주소값이 half에 전달됨
printf("%d %d\n", a, b); //21 10 -- 3
}
참조(위치)값을 전달 => 데이터 원본 가공 가능
* 선형 자료구조의 리스트에서 링크 개념을 생각하면 이해하기 편함
728x90
'IT > 정보처리기사' 카테고리의 다른 글
[서평] 2024 이기적 정보처리기사 실기 최신 문제집 (0) | 2023.09.18 |
---|---|
2023년 1회차 정보처리기사 필기 비전공자 합격 후기(3월21일 업데이트) (0) | 2023.03.02 |
[정처기] 애플리케이션 성능 개선 - 클린코드, 객체지향 방법론 (0) | 2023.02.17 |
[정처기 4과목] C언어 서식 지정자 종류&옵션 (0) | 2023.02.12 |
[정처기 1과목] 정형 기술 검토(FTR) (0) | 2023.02.11 |
Comments