如何在C中执行此程序?第3.0部分

时间:2013-10-14 01:06:57

标签: c pass-by-reference scanf

编写一个名为readRect()的函数,该函数使用scanf()来读取定义的值 矩形的位置。值是xmin,ymin,xmax,ymax的整数。您的 函数应该通过引用传递参数来返回这四个整数值。此外,您的函数是返回一个整数,该整数是成功扫描的值的数量,因此用户可以键入非数字项(如eod)以指示无数据(即,使用返回类型返回此值)。 我不明白我应该如何创建函数readRect(),以便它通过引用传递参数

int readRect (int w, int x, int y, int z){
     return scanf("%d%d%d%d\n",&w,&x,&y,&z);
}



int main (void){
    int a,b,c,d;
    printf(">>enter two rectangles:\n");
    readRect(a,b,c,d);

    return EXIT_SUCCESS;
}

2 个答案:

答案 0 :(得分:1)

您需要通过地址传递参数,也就是指针。因此,函数头将是:

int readRect ( int * w, int * x, int * y, int * z )

来自main的来电

readRect ( &a, &b, &c, &d );

答案 1 :(得分:1)

将其重写为

int readRect (int *w, int *x, int *y, int *z)  
{
      return scanf("%d%d%d%d",w,x,y,z);  
}  

并将其从manin称为

readRect(&a, &b, &c, &d);

请注意,在C中,所有来电都是按值而非参考