본문 바로가기
C/Example

[C] 포인터 예제

by 꾸압 2021. 3. 9.

<문제.1>

a[] = {10, 20, 30, 40, 50} 을 거꾸로 출력하는 프로그램을 작성하세요. 

(포인터 & while 활용)

 

<해설>

#include <stdio.h>

void print_reverse(int a[], int size){
	
	int i = 4;
	int *p = NULL;
	p = a;
	
	while (i > -1){
		printf("%d ", *(p+i) );
		i--;
	}
}

int main(){
	
	int a[] = {10, 20, 30, 40, 50};
	
	print_reverse(a,5);
	
	return 0;
}

 

 

<문제.2>

swap 을 활용하여 a = 100, b = 200 두 수 값을 바꾸세요.

 

<해설>

#include <stdio.h>

void swap(int *x, int *y){ 
	
	int tmp;
	
	tmp = *x;
	*x = *y;
	*y = tmp;
}

int main(){
	
	int a = 100, b = 200;
	
	printf("%d   %d   \n", a, b);
	swap(&a, &b);	
	
	printf("%d   %d   \n", a, b);
	
	return 0;
}

* 만약 swap 에 pointer 를 안 쓰면 swap 함수의 x, y 값만 서로 바뀔 뿐 main() 함수의 a,b 는 그대로다.

'C > Example' 카테고리의 다른 글

[C] 구조체 예제  (0) 2021.03.10
[C] 문자열 예제  (0) 2021.03.09
[C] 좌석 예약 프로그램 (배열)  (0) 2021.03.08
[C] 배열 예제 (심화)  (0) 2021.03.08

댓글