C 函数返回意外值

标签 c function

我在使用这个程序时遇到了问题,perimetro (perimeter)。我从来没有得到正确的值(value)。我总是得到疯狂的数字。

这是我的代码:

 #include <stdio.h>
 #include <math.h>
 int perimetro(int v[][3] , int p);
 int main(){
 int v[1][3];
 int i,j,p;
 for (i=0;i<1;i++){
     for (j=0;j<3;j++){
        printf("Digite o tamanho de um dos lados do triangulo :");
        scanf("%d",&v[i][j]);
    }
   }
perimetro(v,p);
 printf("O perimetro corresponde a : %d",p);
return 0;
}



    int perimetro(int v[][3], int p) {
p=0;
p=p+v[0][0]+v[0][1]+v[0][2];
return p;

最佳答案

改变

perimetro(v,p);

p=perimetro(v,p);

这样做是因为函数返回值(周长)但您没有将该值存储在任何变量中。将 p 传递给函数并修改它不会修改它在 main 中的值。这是因为 C 使用值传递,并且在函数中找到了变量的副本。

更好的方法是将 p 的地址传递给函数并使用指针作为函数的第二个参数,或者将一个参数作为值传递给函数函数中未使用第二个参数。

关于C 函数返回意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609657/

相关文章:

c - Malloc 或普通数组定义?

c - 为什么数组不能通过使用 fork() 函数来工作?

c - 预处理器如何处理 "#include"指令?

c - 在 C 中传递异常数量的函数参数如何仍能按预期工作?

python - 1 作为函数声明中的参数类型

使用 memcpy 转换字节数据

c - 这段代码中创建了多少个进程?

php - 如何在 PHP 函数中执行 if 语句?

javascript - 访问 jquery 选择器内的函数

javascript - 将变量从数组传递到函数中