码迷,mamicode.com
首页 > 其他好文 > 详细

一个函数只能返回一个值?笑话

时间:2014-06-15 13:07:50      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:   name      amp   har   io   

函数的define:
若有两个变量x和y,对于x的每一个值,y都有唯一确定的值与它对应,则y与x有函数关系。一般用表示。其中x叫做自变量,y叫做因变量。

唯一的值?对啊,C语言函数中也是只能return 一个的而已,虽然你能写多个return 到C语言的函数中,可是见到第一个return 后,后面的操作都是不执行的。读者可以试试!!
那么,我们怎样从一个C语言函数中得到多个值呢?我们可以用些技术吧???
对的,真的可以!!!
①可以利用指针,指针里放着变量的地址,如果我们改变它的指向,不就可以改变它的值吗?就相当于【我搬家了,地址改变了】,就可以改变我的值啦!!
所以函数中我们可以传入多个指针来实现!!!
#include<stdio.h>
int i=6;
int main()
{
 void fun(int **f3,int **f4);
 int f1=7,f2=2;
 int **f5,**f6;
 
 f5=&f1;
 f6=&f2;
 printf("%d  %d\n\n",*f5,*f6);
 fun(&f5,&f6);
 printf("%d  %d",*f5,*f6);//改变后
 system("pause");
 
}

void fun(int **f3,int **f4)
{
    *f3=&i;
     *f4=&i;
}

这样就可以改变了!!模拟实现了返回两个值

②、和①类似。只是这里是字符串指针,这里不多说了

③、大哥出来了。。这是最有用的方法。。。记得我们C语言的结构体不?它可以有更强大的功能!!!!

我们用的strut MyStruct定义一个结构体后,这里的struct MyStruct就是一个类型。。相当于int double float那些。。所以,,我们大胆用,,定义【结构体函数】

#include<stdio.h>
struct MyStruct
{
char name[20];
int number;
};
int main()
{
struct MyStruct fun();
struct MyStruct cp=fun();

  printf("%s %d",cp.name,cp.number);
  system("pause");
  }
 
 
   struct MyStruct fun()
   {
   struct MyStruct c;
   strcpy(c.name,"name");
   c.number=1564;
   return (c);
  
  }

 这样就可以了!!

也可以指针思想!!传入结构体指针

  #include<stdio.h>
  struct MyStruct
  {
  char name[20];
  int number;
  };
  int main()
  {
  struct MyStruct Liu;
  void  fun(struct MyStruct * cp);
  fun(&Liu);
  printf("%s %d",Liu.name,Liu.number);
  system("pause");
  }
  void  fun(struct MyStruct * cp)
  {
  strcpy(cp->name,"name");
  cp->number=123456;
 
}

④、用全局变量,,(不推荐),但是有时候很好用的奥!!特别是记录函数调用了多少次!!Remember!!!

⑤、能粉楼主一个么??

一个函数只能返回一个值?笑话,布布扣,bubuko.com

一个函数只能返回一个值?笑话

标签:   name      amp   har   io   

原文地址:http://www.cnblogs.com/liuweimingcprogram/p/3789219.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!