Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c中的按引用传递不同于c++;?_C_Reference - Fatal编程技术网

c中的按引用传递不同于c++;?

c中的按引用传递不同于c++;?,c,reference,C,Reference,当我试着运行它时,我得到了这个 错误:应为“;”,“,”或“&”标记之前的“)” 它在抱怨这条线路 int read_values(double &sum) { 所以我想传递sum,然后直接编辑它。在C语言中你是怎么做到的?谢谢各位 #include <stdio.h> /* Read a set of values from the user. Store the sum in the sum variable and return the number

当我试着运行它时,我得到了这个
错误:应为“;”,“,”或“&”标记之前的“)”

它在抱怨这条线路

int read_values(double &sum) {
所以我想传递sum,然后直接编辑它。在C语言中你是怎么做到的?谢谢各位

#include <stdio.h>

/*
    Read a set of values from the user.
    Store the sum in the sum variable and return the number of values read.
*/
int read_values(double &sum) {
  int values=0,input=0; double sum2=0;
  sum2 = sum;
  printf("Enter input values (enter 0 to finish):\n");
  scanf("%d",&input);
  printf("%d\n", input);
  while(input != 0) {
    values++;
    sum2 += input;

    scanf("%d",&input);
  }

  return values;
}

int main() {
  double sum=0;
  int values;
  values = read_values(sum);
  printf("Average: %g\n",sum/values);
  return 0;
}
#包括
/*
从用户处读取一组值。
将总和存储在sum变量中,并返回读取的值数。
*/
int读取值(双精度和总和){
int值=0,输入=0;双sum2=0;
sum2=总和;
printf(“输入输入值(输入0以完成):\n”);
scanf(“%d”,输入(&I));
printf(“%d\n”,输入);
while(输入!=0){
价值++;
sum2+=输入;
scanf(“%d”,输入(&I));
}
返回值;
}
int main(){
双和=0;
int值;
值=读取值(总和);
printf(“平均值:%g\n”,总和/值);
返回0;
}

C不做引用,只做原始指针

main() {
    ...
    values = read_values(&sum);
    ...
}


int read_values(double* sum)
{
    ...
    sum2 = *sum;
    ...

}

C不做引用,只做原始指针

main() {
    ...
    values = read_values(&sum);
    ...
}


int read_values(double* sum)
{
    ...
    sum2 = *sum;
    ...

}

我想你是想这么做:

int read_values(double *sum) {
  int values=0,input=0;
  printf("Enter input values (enter 0 to finish):\n");
  scanf("%d",&input);
  printf("%d\n", input);
  while(input != 0) {
    values++;
    *sum += input;
    scanf("%d",&input);
  }
  return values;
}

int main() {
  double sum=0;
  int values;
  values = read_values(&sum);
  printf("Average: %g\n",sum/values);
  return 0;
}

我想你是想这么做:

int read_values(double *sum) {
  int values=0,input=0;
  printf("Enter input values (enter 0 to finish):\n");
  scanf("%d",&input);
  printf("%d\n", input);
  while(input != 0) {
    values++;
    *sum += input;
    scanf("%d",&input);
  }
  return values;
}

int main() {
  double sum=0;
  int values;
  values = read_values(&sum);
  printf("Average: %g\n",sum/values);
  return 0;
}

我们会这样做的。在提问之前,请检查本网站和您的搜索引擎以了解类似问题。这一个可能是Wellcome的复制品。在提问之前,请检查本网站和您的搜索引擎以了解类似问题。这是一个可能的复制品