所以我必须创建两个函数。在 int main 中,程序要求输入 x 和 y 值。在第一个函数中,它将 x 和 y 值加 1。在下一个函数中,它打印出该函数的结果。现在我的问题是第二个函数没有打印出第一个函数的输出,我不知道我做错了什么,这是我目前的代码:
#include <stdio.h>
void plusone(int *x,int *y);
void printresult(int *x, int *y);
int main()
{
int x,y;
printf("enter x variable: ");
scanf("%d",&x);
printf("enter y variable: ");
scanf("%d",&y);
plusone(&x,&y);
printf ("%d and %d\n\n",x,y);
printresult(&x,&y);
}
void plusone(int *x,int *y)
{
return *x+1;
}
void printresult(int *x,int *y)
{
printf("the result is: x:%d y:%d",*x,*y);
}
所以当我运行那个程序时,x输入1,y输入2,输出仍然是1和2,但是plusone函数之后应该是x是2,y是2,请问有什么问题吗我的代码?对不起我的英语,但我希望我解释得很好,我是 C 编程的新手
最佳答案
更好的答案是 plusone 函数不会对 *x 参数应用任何副作用。这是一个有副作用的 plusone 函数(实际上是两个——每个传入的变量都有一个):
void plusone(int *x,int *y)
{
*x = *x+1;
*y = *y+1;
}
关于c - 使用两个不同的函数来更改 main 和 print 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469530/