【问题标题】:how to pass pointers as parameters in a function? [closed]如何在函数中将指针作为参数传递? [关闭]
【发布时间】:2019-09-11 12:55:36
【问题描述】:

我正在尝试使用指针打印数字的总和和差异,但我只得到总和作为输出。

#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;
}

【问题讨论】:

  • printf("",sum);忘了写%d\n
  • 此外,该函数不会更改 ab 的值,所以我不知道您对最后一次 printf 调用的期望是什么,除了打印与第一。也许您忘记更新 update 函数中的值?看起来很奇怪。

标签: c function pointers definition


【解决方案1】:

如果我理解正确(考虑到函数名称),您的意思类似于以下内容

#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;
}

例如,如果输入两个值 2010,那么输出将如下所示

a = 30, b = 10

注意你的函数中printf的这些调用

printf("",sum);

printf("",sub);

没有意义。

【讨论】:

  • 我想通了。代码应该如下,在更新函数中;sum=*a;sub=*b;我刚开始写代码,所以请原谅愚蠢的错误
猜你喜欢
  • 1970-01-01
  • 2015-01-29
  • 2020-11-08
  • 2021-07-18
  • 2022-01-20
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多