黑马程序员技术交流社区

标题: 关于指针的问题 [打印本页]

作者: sen    时间: 2014-4-11 20:15
标题: 关于指针的问题
本帖最后由 sen 于 2014-5-20 11:58 编辑

#include <stdio.h>
intSumAndMinus(int n1,intn2,int *n3);
int  main()
{
    int a = 10;
    int b = 7;
    //存储和
    int he;
    //存储差
    int cha;
   
    he = SumAndMinus(a,b,&cha);
   
    printf("和是%d,差是%d\n",he,cha);
    return 0;
}
intSumAndMinus(int n1,intn2,int *n3)
{
    *n3 = n1 - n2;
   
    returnn1 +n2;
}

这个代码是使用了指针变量和return来返回了和跟差,我想问一下可以直接用指针来返回和跟差吗?
如果可以的话,请问代码要怎样写?求大神回答~


作者: 一只小菜鸟    时间: 2014-4-11 20:26
  1. void SumAndMinus(int n1,int n2,int *sum,int *minus)
  2. {
  3.     *minus = n1 - n2;
  4.    
  5.     *sum=n1+n2;
  6. }

  7. int  main()
  8. {
  9.     int a = 10;
  10.     int b = 7;
  11.     //存储和
  12.     int sum;
  13.     //存储差
  14.     int minus;
  15.     SumAndMinus(a,b,&sum,&minus);
  16.    
  17.     printf("和是%d,差是%d\n",sum,minus);
  18.     return 0;
  19. }
复制代码

其实你问的问题直接就可以参照差怎么写,你根据它怎么样的,就应该可以想到
作者: 于清扬    时间: 2014-4-11 23:14
本帖最后由 于清扬 于 2014-4-11 23:16 编辑
  1. #include <stdio.h>
  2. void SumAndMinus(int n1,intn2,int *n3,int *n4);
  3. int  main()
  4. {
  5.     int a = 10;
  6.     int b = 7;
  7.     //存储和
  8.     int he;
  9.     //存储差
  10.     int cha;
  11.    
  12.     SumAndMinus(a,b,&cha,&he);
  13.    
  14.     printf("和是%d,差是%d\n",he,cha);
  15.     return 0;
  16. }
  17. void SumAndMinus(int n1,intn2,int *n3,int *n4)
  18. {
  19.     *n3 = n1 - n2;
  20.    *n4 = n1 + n2;
  21. }

  22. 都用指针其实就是多传一个指针参数进去,然后把返回值改为空就可以了
  23. 这样做是没问题,但其实这老师给的代码要比都用指针更简便,因为函数只用了三个形参
复制代码

作者: sen    时间: 2014-4-12 22:01
非常感谢楼上解答的朋友~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2