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

返回值与接收数据

时间:2015-09-05 13:53:14      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

结构体做返回值,相当于类名做返回值。

形式参数是有主调函数传递给被调函数的数据接收变量,空间属于被调函数。

返回值是被调函数传送给主调函数的数据接收变量,是无名的不可见的变量,空间在主调函数中。

用引用做返回值,用对象做接收数据。

将全局区的变量传给EAX,在有EAX指向的地址的数据复制到是s1,s2中,打印的结果是有效的。返回值中的空间是不可见的。

#include <iostream>

using namespace std;

struct SStud

{

  int nNumb;

  char sName[20];

  float fMath;

}g_s1={1008,"张三",89.5f},g_s2={1009,"李四",91.5f},g_s={0};

SStud& GetData1()

{

  return g_s1;

}

SStud& GetData2()

{

  return g_s2;

}

int main()

{

  SStud s1=GetData1();

  SStud s2=GetData2();

  g_s1=g_s;

  g_s2=g_s;

  cout<<s1.nNumb<<‘\t‘<<s1.sName<<‘\t‘<<s1.fMath<<endl;

  cout<<s2.nNumb<<‘\t‘<<s2.sName<<‘\t‘<<s2.fMath<<endl;

  return 0;

}

对象的引用做返回值,对象的引用接收数据。

没有结构体传递数据的问题,将数据传递给EAX,EAX后传递给s1,s2。打印的结果是空。

#include <iostream>

using namespace std;

struct SStud

{

  int nNumb;

  char sName[20];

  float fMath;

}g_s1={1008,"张三",89.5f},g_s2={1009,"李四",91.5f},g_s={0};

SStud& GetData1()

{

  return g_s1;

}

SStud& GetData2()

{

  return g_s2;

}

int main()

{

  SStud& s1=GetData1();

  SStud& s2=GetData2();

  g_s1=g_s;

  g_s2=g_s;

  cout<<s1.nNumb<<‘\t‘<<s1.sName<<‘\t‘<<s1.fMath<<endl;

  cout<<s2.nNumb<<‘\t‘<<s2.sName<<‘\t‘<<s2.fMath<<endl;

  return 0;

}

返回值是对象,接收的类型是对象的引用。

有结构体数据的传递。

发生了2次结构体数据的传递,打印的结果是有效的数据。

#include <iostream>

using namespace std;

struct SStud

{

  int nNumb;

  char sName[20];

  float fMath;

}g_s1={1008,"张三",89.5f},g_s2={1009,"李四",91.5f},g_s={0};

SStud GetData1()

{

  return g_s1;

}

SStud GetData2()

{

  return g_s2;

}

int main()

{

  SStud& s1=GetData1();

  SStud& s2=GetData2();

  g_s1=g_s;

  g_s2=g_s;

  cout<<s1.nNumb<<‘\t‘<<s1.sName<<‘\t‘<<s1.fMath<<endl;

  cout<<s2.nNumb<<‘\t‘<<s2.sName<<‘\t‘<<s2.fMath<<endl;

  return 0;

}

返回值是对象,接收数据是对象,打印的结果是有效的。

#include <iostream>

using namespace std;

struct SStud

{

  int nNumb;

  char sName[20];

  float fMath;

}g_s1={1008,"张三",89.5f},g_s2={1009,"李四",91.5f},g_s={0};

SStud GetData1()

{

  return g_s1;

}

SStud GetData2()

{

  return g_s2;

}

int main()

{

  SStud s1=GetData1();

  SStud s2=GetData2();

  g_s1=g_s;

  g_s2=g_s;

  cout<<s1.nNumb<<‘\t‘<<s1.sName<<‘\t‘<<s1.fMath<<endl;

  cout<<s2.nNumb<<‘\t‘<<s2.sName<<‘\t‘<<s2.fMath<<endl;

  return 0;

}

返回值与接收数据

标签:

原文地址:http://www.cnblogs.com/xzy960525/p/4780881.html

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