일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- C언어 변수
- URL 다운로드
- C언어 배열
- Naver SmartEditor
- jsp
- C언어 매크로
- 구글 reCaptcha
- C언어 메모리
- Spring email
- GUI
- TCP/IP 소켓
- C언어 구조체
- 텍스트 파일 읽기
- placehoder
- gcc
- Google reCaptcha
- Spring google
- C언어
- 오라클
- Oracle
- C언어 함수
- SQL
- 역순
- 날짜
- 자바
- Vim
- C언어 파일입출력
- HTML5
- 포인터
- Today
- Total
easy software
C언어 Call-By-Value / Reference 예제 본문
저번시간에 공부했던 Call-By-Value / Reference 를 이용하여
간단한 예제를 해보도록 하겠습니다.
주석을 확인하시면, 간단하게 이해할 수 있는 문제들입니다.
1. 사용자로부터 정수를 하나 입력받는다.
2. main아닌 함수를 구현해서 값을 전달받아 제곱을 해준다
3. Call-By-Value / Reference 두 가지 형식으로 각각 작성한다.
Call-By-Value 형식
#include <stdio.h>
int Square(int n){ //주소가 아닌 값을 복사하여 변수 n에 저장함
return n * n; //제곱하여 반환
}
int main(void){
int a;
printf("Call-By-Value - 정수를 입력하세요 : ");
scanf_s("%d", &a);
a = Square(a); //&를 사용하지 않으므로 주소를 전달하는 것이 아님
printf("%d \n", a);
return 0;
}
Call-By-Reference 형식
#include <stdio.h>
void Square(int* n){ //포인터 변수를 이용하여, main의 변수 a를 가리킨다
*n = *n * *n; //포인터변수 n이 가리키는 값을 제곱해서 저장한다. 변수 a에 직접 접근한다.
}
int main(void){
int a;
printf("Call-By-Reference - 정수를 입력하세요 : ");
scanf_s("%d", &a);
Square(&a); //값이 아닌 주소를 전달한다. Square함수에서도 변수 a에 접근할 수 있다.
printf("%d \n", a);
return 0;
}
'C언어 > 포인터와 배열' 카테고리의 다른 글
C언어 포인터와 const(상수) (0) | 2015.01.19 |
---|---|
C언어 Call-By-Reference 예제(변수자리 바꾸기) (0) | 2015.01.19 |
C언어 Call-By-Value / Reference 이해 (0) | 2015.01.19 |
C언어 포인터와 배열의 이해 (0) | 2015.01.17 |
C언어 포인터와 연산, 포인터와 배열의 관계 (0) | 2015.01.17 |