设为首页 加入收藏

TOP

6.4.1 把地址传递给函数(2)
2013-10-07 00:48:27 来源: 作者: 【 】 浏览:58
Tags:6.4.1 地址 递给 函数

6.4.1 把地址传递给函数(2)

2.定义该函数的原型。

  1. void swap (int *first, int *second); 

这个函数的名字是swap,它有两个输入参数,它们都是指向整数的指针。

3.开始定义main()函数并创建两个整数。

  1. int main() {  
  2.     int myNum1 = 23900;  
  3.     int myNum2 = -149; 

4.输出那两个整数的初始值。

  1. std::cout << "At first, myNum1 is " 
  2. << myNum1 << " and myNum2 is " 
  3. << myNum2 << "\n\n"

5.调用swap()函数。

  1. swap (&myNum1, &myNum2); 

这个函数以两个指针作为其输入参数,这意味着必须把两个地址值传递给它。这很简单,在两个变量名的前面加上"取地址"操作符就行了。

6.再次输出那两个变量的值。

  1. std::cout << "After calling the function, myNum1 is " 
  2. << myNum1 << " and myNum2 is " 
  3. << myNum2 << "\n\n"

正如你将在运行这个程序时看到的那样,在调用swap()函数之后,两个变量的值将交换过来。

7.完成main()函数。

  1. std::cout << "Press Enter or Return to continue.\n";  
  2. std::cin.get();  
  3. return 0;  

8.开始定义swap()函数。

  1. void swap (int *first, int *sencond) { 

函数定义的开头与它的原型完全一样。如果你有什么疑问,请复习第5章中的有关内容。

9.创建一个临时整数。

  1. int temp; 

这个临时变量是交换两个变量的值所必需的。它是一个整数,不是一个指针,将保存一个值而不是保存一个地址。

10.交换两个变量的值。

  1. temp = *first;  
  2. *first = *second;  
  3. *second = temp; 

交换两个变量的值需要3个步骤。第1步:把一个值保存到temp变量里,注意,引用first指针所指向的值需要使用*first对它进行解引用;第2步:把second的值赋给first,这一步需要对两个指针进行解引用;第3步,把first的原始值(已在第1步临时存入temp变量)赋值给second。

11.完成swap()函数。

12.把这个文件保存为swap1.cpp,然后编译并运行这个程序(如图6-23所示)。

 
图6-23 swap()函数利用指针和地址
对两个变量的值进行了交换

"提示

第5章还介绍了重载函数的概念:多个函数有同样的名字,但有着不同类型或个数的输入参数。如果想让swap()函数还能对其他类型的变量的值进行交换,可能需要用到这个概念。

有时候,向函数传递地址是让函数接收一个复杂数据类型的唯一办法。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇6.4.2 以"引用传递"方.. 下一篇6.4.1 把地址传递给函数(1)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: