我正在尝试使用指针打印数字的总和和差异,但我只得到总和作为输出。
#include <stdio.h>
#include<math.h>
void update(int *a,int *b)
{
int sum,sub;
sum = *a + *b;
printf("",sum);
sub = abs(*a - *b);
printf("",sub);
}
int main()
{
int a, b;
int *pa = &a, *pb = &b;
scanf("%d %d", &a, &b);
update(pa, pb);
printf("%d\n%d", a, b);
return 0;
}
最佳答案
如果我理解正确(考虑到函数名称),你的意思如下
#include <stdio.h>
#include <stdlib.h>
void update( int *a, int *b )
{
*a += *b;
*b = abs( *a - *b - *b );
}
int main(void)
{
int a, b;
scanf( "%d%d", &a, &b );
update( &a, &b );
printf( "a = %d, b = %d\n", a, b );
return 0;
}
例如,如果输入两个值 20
和 10
那么输出将如下所示
a = 30, b = 10
请注意函数中对 printf
的这些调用
printf("",sum);
printf("",sub);
没有意义。
关于c - 如何在函数中传递指针作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57889701/