第2周项目1-C/C++语言中函数参数传递的三种方式
2015-09-09 20:18
501 查看
问题及代码:
运行结果:
1..1运行结果如下:
1.2和1.3的运行结果均为:
知识点总结:
1.1交换的值为形参x,y的值,仅仅将值交换成了3,2,没有交换a,b的值。
1.2使用指针p1指向了a,用指针p2指向了b,完成myswap函数后a,b的值自然是交换的。
1.3是令x与a,y与b共同使用一个地址的,所以完成myswap函数后值自动交换。
下面用画图的形式表现下a,b完成myswap函数后的状态:
学习心得:
通过对C语言中函数参数传递值的三种方式,复习了传地址和引用作形参的内容,同时对之前为学习到的C与C++的不同做了一定的了解和加强。
/* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:Cpp1.cpp *作者:李子伦 *完成日期:2015年9月7日 * *问题描述:比较函数参数传递的三种方式 *输入描述:输入a,b的值 *程序输出:输出传递后a,b的值 */ #include<stdio.h> int main() { int a, b; printf("请输入待交换的两个整数:"); scanf("%d %d", &a, &b); void myswap(int x, int y); //分三个程序,分别写上调用myswap的合适形式 printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0; } //(1)传值 void myswap(int x, int y) { int t; t=x; x=y; y=t; } //(2)传地址 void myswap(int *p1, int *p2) { int t; t=*p1; *p1=*p2; *p2=t; } //(3)引用作形参 void myswap(int &x, int &y) { int t; t=x; x=y; y=t; }
运行结果:
1..1运行结果如下:
1.2和1.3的运行结果均为:
知识点总结:
1.1交换的值为形参x,y的值,仅仅将值交换成了3,2,没有交换a,b的值。
1.2使用指针p1指向了a,用指针p2指向了b,完成myswap函数后a,b的值自然是交换的。
1.3是令x与a,y与b共同使用一个地址的,所以完成myswap函数后值自动交换。
下面用画图的形式表现下a,b完成myswap函数后的状态:
学习心得:
通过对C语言中函数参数传递值的三种方式,复习了传地址和引用作形参的内容,同时对之前为学习到的C与C++的不同做了一定的了解和加强。
相关文章推荐
- 项目11.1分离各位数
- C++用法的学习心得
- 最简单C语言的扫雷地图(不是游戏)
- C++用法及学习心得
- Ubuntu Eclipse for C++ 11
- 【C++学习笔记】const的用法
- 深入学习C++中的函数概念
- 求集合/字符串中的所有组合 (C语言)
- C++条件及循环语句的综合运用实例
- 重新认识二级指针(Pointers to Pointers)
- C++用法的学习心得
- 简单举例说明C++中break和continue语句的用法
- c++运算符重载
- C语言(11)--回文日、确定等式、fflush(stdin)、将十进制数转换成n进制数、二分法解方程
- C++ Coding Standard
- 全排列 (C语言实现)
- libtc++ lib
- C++面向对象高级开发课程(第二周)
- 如何用C++函数实现类似三目运算符的功能
- c++ 析构函数和构造函数