Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- jsp
- C언어 메모리
- URL 다운로드
- Vim
- 오라클
- 텍스트 파일 읽기
- SQL
- C언어 배열
- gcc
- C언어
- 포인터
- C언어 구조체
- Spring google
- Oracle
- 날짜
- 역순
- C언어 파일입출력
- Naver SmartEditor
- GUI
- HTML5
- C언어 변수
- 자바
- placehoder
- java
- Spring email
- Google reCaptcha
- C언어 함수
- C언어 매크로
- TCP/IP 소켓
- 구글 reCaptcha
Archives
- Today
- Total
easy software
C언어 Call-By-Reference 예제(변수자리 바꾸기) 본문
이번 예제는 Call-By-Reference를 이용하여, 변수의 자리를 바꾸는 프로그램을 구현하겠습니다.
main이 아닌 별도의 함수를 두고 해야 하는 작업입니다.
초기값은 a = 10, b = 20, c = 30 이고,
프로그램이 원하는 최종 출력값은 a = 30, b = 10, c = 20 입니다.
코드의 주석을 잘 보시고 이해해보시기 바랍니다.
#include <stdio.h>
//a에는 c의 값, b에는 a의 값, c에는 b의값.
//즉, 서로 삼각형 모양의 형태로 값을 변경하는 함수
void swap(int* a, int* b, int* c){ //포인터 변수로 주소를 전달받음
int temp = *a; //임시변수에 *a가 가리키는 값 저장
*a = *c; //*a가 가리키는 값을 *c가 가리키는 값으로 변경
*c = *b; //*c가 가리키는 값을 *b가 가리키는 값으로 변경
*b = temp; //*b가 가리키는 값을 temp값으로 변경
}
int main(void){
int a = 10;
int b = 20;
int c = 30;
swap(&a, &b, &c); //주소 전달
printf("변경된 a의 값 : %d \n", a);
printf("변경된 b의 값 : %d \n", b);
printf("변경된 c의 값 : %d \n", c);
return 0;
}
'C언어 > 포인터와 배열' 카테고리의 다른 글
C언어 포인터와 const키워드 예제 (0) | 2015.01.19 |
---|---|
C언어 포인터와 const(상수) (0) | 2015.01.19 |
C언어 Call-By-Value / Reference 예제 (0) | 2015.01.19 |
C언어 Call-By-Value / Reference 이해 (0) | 2015.01.19 |
C언어 포인터와 배열의 이해 (0) | 2015.01.17 |
Comments