문제
내가 작성한 코드
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
void swap(int **arr1, int **arr2); //swap 함수 선언
int main() {
int arr1[5]; //5칸짜리 첫번째 배열
int arr2[5]; //5칸짜리 두번째 배열
for(int i = 0; i<5; i++){ //arr1에 입력받기
scanf("%d", &arr1[i]);
}
for(int i = 0; i<5; i++){ //arr2에 입력받기
scanf("%d", &arr2[i]);
}
//포인터와 연결
int *ptr1 = &arr1;
int *ptr2 = &arr2;
swap(&ptr1, &ptr2); //swap 함수 호출
//결과 출력
for(int i = 0; i<5; i++){
printf("%d ", *(ptr1+i));
}
printf("\n");
for(int i = 0; i<5; i++){
printf("%d ", *(ptr2+i));
}
printf("\n");
return 0;
}
void swap(int **arr1, int **arr2){
int *tmp; //포인터 생성
tmp = *arr1; //arr1의 주소 tmp에 연결
*arr1 = *arr2; //arr1의 주소를 arr2로 갱신
*arr2 = tmp; //arr2의 주소를 tmp로 갱신
}
tmp를 쓰는 원리는 같지만 주어지는 값과 저장하는 위치가 주소임에 주의!!
'C언어 > 주차별 문제' 카테고리의 다른 글
[10주차] 역방향 출력 (0) | 2023.06.06 |
---|---|
[10주차] 포인터를 이용하여 배열의 값 변경하기 (0) | 2023.06.06 |
[10주차] 이중포인터를 이용한 최솟값, 최댓값 구하기 (0) | 2023.06.06 |
[8주차] 개미 (0) | 2023.04.23 |
[8주차] 지뢰찾기2 (0) | 2023.04.23 |