수다님들 포인터 질문드리겠습니다 ㅜ
에일린
#includestdio.h
void maxandmin(int * parr,int**max,int**min)
{
int i;
*max=*min=&parr[0];
for(i=0;i5;i++)
{
if(**maxparr[i])
*max=&parr[i];
if(**minparr[i])
*min=&parr[i];
}
}
int main()
{
int i;
int *maxptr;
int *minptr;
int arr[5];
for(i=0;i5;i++)
{
printf(수를 입력하세요 : );
scanf(%d,&arr[i]);
}
maxandmin(arr,&maxptr,&minptr);
printf(최댓값 : %d, 최솟값 : %d, *maxptr, *minptr);
return 0;
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
#includestdio.h
void maxandmin(int * parr,int**maxptr,int**minptr)
{
int i;
int *max,*min;
*max=*min=&parr[0];
for(i=0;i5;i++)
{
if(*maxparr[i])
max=&parr[i];
if(*minparr[i])
min=&parr[i];
}
*maxptr=max;
*minptr=min;
}
int main()
{
int i;
int *maxptr;
int *minptr;
int arr[5];
for(i=0;i5;i++)
{
printf(수를 입력하세요 : );
scanf(%d,&arr[i]);
}
maxandmin(arr,&maxptr,&minptr);
printf(최댓값 : %d, 최솟값 : %d, *maxptr, *minptr);
return 0;
}
문제: int 형 포인터 변수 maxptr과 minptr 그리고 길이가 5인 배열을 선언 한 후
함수에 전달하여 최댓값과 최솟값을 구하여라.
다중포인터와 배열과의 관계를 공부하던 중 예제를 풀어보다가
궁금증이 생겼습니다.
이중포인터를 더 확실히 이해하기 위해 첫번째 코드처럼 짜봤습니다.
컴파일은 진행되며 출력값 역시 최댓값과 최솟값을 구할 수 있었습니다.
두번째 코드는 정답과 거의 유사하며 인터넷에 쳐도 많이 나오는 답이었습니다.
첫번째 제가 짠 코드는 그리 좋다고 볼 수 없는 코드 인가요?
혹은 문제점이 있을까요?
*maxptr 이 int ** max 의 매개변수로 전달 되었으므로
*max 가 maxptr이 가리키는 주소값이므로 이 곳에 &arr[0] 이라는 배열의 주소값을 저장하였고,
*min 도 마찬가지로 저장하였습니다.
**max는 *maxptr과 같으므로 parr[i] 라는 값과 비교를 하였습니다.
**min 도 마찬가지의 의미
첫번째 코드는 함수안에서 따로 변수선언을 하지 않고
전달받은 매개변수로만 코드를 짜고 싶어 저렇게 고민을 해봤는데
문제점이 있거나 혹은 제가 이해하고 설명한 부분이 잘못된 부분이 있을까요?
답변 감사합니다.
-
팬지
다시한번감사드립니다!
-
도1도캣
프로그래밍 문제 하나에 정답이 하나라면, 프로그래밍은 암기과목이 되었겠죠.
-
시윤
답변 정말 감사합니다. 첫번째 코드도 괜찮은 코드라고 볼 수 있는거라는거겠죠?
-
즐겨찾기
아무 문제 없는 코드입니다.
불필요한 변수선언을 피할 수 있으므로 공간효율적이라고 볼 수 있겠습니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2697314 | fprintf와 fscanf 로 파일 입출력 할떄 | 밝음이 | 2025-06-06 |
2697293 | 툴 소스 뽑아내는법 | 도움 | 2025-06-06 |
2697264 | 소소한거 두어가지 질문할께요~ (8) | 별솔 | 2025-06-06 |
2697235 | scanf로 인풋 받을 때?! | 보담 | 2025-06-06 |
2697207 | 열혈강의 연습문제 질문이요~ (2) | 맥적다 | 2025-06-05 |
2697182 | strcmp, strtok - 어떤 기능을 하는지... | 루다 | 2025-06-05 |
2697129 | [질문] 아래 저축액을 계산하는 프로그램 ㅠ 추가 질문 (7) | 찬늘 | 2025-06-05 |
2697072 | 쌩초보 질문! (1) | 얀 | 2025-06-04 |
2697050 | 도움부탁드립니다.. | 화이트 | 2025-06-04 |
2697023 | gotoxy함수, 어떻게 사용하죠? (3) | 적송 | 2025-06-04 |
2696994 | c언어를 막 시작한 초보인데 질문이 있어용 ㅠㅠ (2) | 귀1여운렩 | 2025-06-03 |
2696944 | 윈도우 콘솔프로그램 질문드립니다 (2) | 꽃님이 | 2025-06-03 |
2696882 | c언어 입력받기 질문 입니다 (2) | 흰추위 | 2025-06-02 |
2696853 | 문자열은 정적메모리에 할당된다고 하는데 정적메모리가 뭡니까?? (6) | 다온 | 2025-06-02 |
2696799 | c c++언어입문전에 파이톤이나 자바스크립트배워두면.. (2) | 앨런 | 2025-06-02 |
2696747 | size of 연산자에 대해 질문이 있습니다. (3) | 유진공주 | 2025-06-01 |
2696721 | Char 타입의 2D array 기초에 대해 질문드립니다. | 벚꽃 | 2025-06-01 |
2696691 | 자릿수 이동방법좀 가르쳐주세요 (1) | 흰추위 | 2025-06-01 |
2696664 | 학생정보 구조체 질문 | 큰아 | 2025-05-31 |
2696619 | c언어에서는 논리형을 어떻게 표현하나요? | 은율 | 2025-05-31 |