2014-10-06 3 views
0

스택 오버플로를 처음 사용하는 것처럼 내 질문 문구를 사용하는 방법을 모르겠으므로 다시 게시 해 주시기 바랍니다. 나는 누군가가 내 연구를 위해이 퀴즈에서 나를 도울 수 있기를 바랍니다.배열을 함수로 전달

이 프로그램에 대한 연구를했지만 arraySize에 대한 퀴즈 질문과 관련이 있는지 알 수 없습니다.

질문은 다음과 같습니다. fill aray에 함수 ai를 전달합니다. 함수에 정확하게 전달되는 것은 무엇입니까? 대답은 10 개의 정수가 아닌 단일 메모리 주소입니다! 이것이 함수를 사용하여 배열 ai에 10 개의 숫자를 채울 수있는 이유입니다. 위 함수 fillArray를 완료하여 사용자로부터 arraySize 정수를 읽고 해당 숫자로 배열을 채 웁니다. 크기가 다른 정수 배열을 사용하여 함수를 테스트하는 드라이버 프로그램을 작성하십시오. 함수 fillArray의 형식적 매개 변수 int array []는 int * array로 변경할 수 있습니다. 코드를 수정하고 테스트하여이를 확인하십시오.

내 코드는 다음과 같습니다 :

#include <stdio.h> 
#define MAX 10 

int fillArray(int array[], int arraySize); 
void print_intaray(int array[], int arraySize); 
main() 
{ 
    int ai, exam_scores[MAX]; 

    printf("***List of Array***\n\n"); 
    ai = fillArray(exam_scores, MAX); 
    print_intaray(exam_scores, ai); 
} 

int fillArray(int array[], int arraySize) 
{ 
    int ai, count = 0; 

    printf("Type array, EOF to quit\n"); 

    while ((count < arraySize) && (scanf("%d", &ai) !=EOF)) 
    { 
     array[count] = ai; 
     count++; 
    } 
    return count; 
} 

void print_intaray(int array [], int arraySize) 
{ 
    int i; 
    printf("\n***Your Arrary***\n\n"); 
    for (i = 0; i<arraySize; i++) 
     printf("%d\n", array[i]); 
} 

내가 프로그래밍에 새로운 그리고 난 내 질문에 어떻게 든 해결 될 수 있기를 바랍니다. C에서 (

나는 C 전문가의 많은 아니지만, AFAIK 배열 : 질문을 가정 :)

+1

그럼 정확히 무엇이 문제입니까? – OldProgrammer

+0

무엇? 점은 무엇인가? – HuStmpHrrr

+0

나는 당신이하고 싶은 것을 이해하지만 귀하의 질문은 무엇입니까? – user1336087

답변

0

를 볼

덕분에 "왜 int array[]과 함수 인수에 해당하는 int *array은"입니다)는 주로 오프셋을 추가하는 포인터 일뿐입니다. 당신이 int myarray[]을 기대한다고 말하는 것은 정수 (int *array)에 대한 포인터를 기대하는 것과 거의 같습니다. 포인터를 증가 시키면 배열의 다음 요소에 액세스 할 수 있습니다. 이것은 포인터 연산이라고도합니다.

C 컴파일러는 배경에 foo[3]과 같은 배열 구문을 *(*foo+3)과 같은 것으로 변환하지만 포인터를 처리하여 직접 수행 할 수도 있습니다.

+0

답장을 보내 주셔서 감사합니다. Thom, 나는 의미를 가지고 있지만, 사용자가 입력을 arraySize로 채우기 위해 묻는 질문에 대해 더 걱정하고 있습니다. 결과는 사용자가 입력 한 내용을 기반으로 한 것입니까? 위의 코드를 기반으로하기 때문에, 내 출력은 정확히 제가 입력 한 것입니다. 또한, 문제가 드라이버 프로그램을 작성하여 함수를 테스트하도록 요청하는 경우 위의 내용을 기반으로 코드를 작성해야합니까? 질문 자체에 혼란스러워합니다. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다. –

+0

나는 드라이버 프로그램이 무엇을 의미하는지 모르겠다.하지만 사용자로부터 arraySize 입력을 받아 배열에 저장할 필요가있는 것 같다. –

+0

Downvoter : 내 질문을 향상시킬 수 있도록 의견을 남겨주세요! –