练习目录

  • 对引用进行初始化示例
  • 不同的参数传递方式
  • 课本测试7引用作为函数返回值
  • 课本测试8常量说明示例.cpp
  • 课本测试9函数的重载.cpp

对引用进行初始化示例

#include<iostream>
using namespace std;
//T表示类型,CT表示常量类型
//T&表示T类型的引用
//CT&表示类型T的常引用。
//程序以整型类型为例,列出了变量、变量引用、常变量以及常引用之间的各种初始化情况
//大多数都是允许的,只有最后两种情况,需要通过强制类型转换才能实现初始化。
void show() {const int cInt = 30;int oneInt = 50;int &ref = oneInt;  //T&<-Tconst int &rc1 = cInt;//CT&<--CT,CT&表示类型T的常引用const int &rc2 = oneInt;//CT&<-tconst int &rc3 = ref;//CT&<-T&int dInt = ref;//T<--T&int eInt = cInt;//T<--CT,CT表示常量类型int fInt = rc1;//T<--CT&const int gInt = oneInt;//CT《--Tint &ref1 = ref;//T&《--T&const int hInt = ref;//CT<--T&const int JInt = cInt;//CT<<-CTconst int &mInt = rc1;//CT&<--CT&Iconst int Nint = rc2;//CT<--CT&cout << "OK" << endl;int &r2 = (int &)rc1;//T&<--CT&强制类型转换int &r3 = (int &)cInt;//T&<--CT强制类型转换}
int main() {show();
}}

不同的参数传递方式

#include <iostream>
using namespace std;
void SwapValue(int a, int b)
{int tmp;tmp = a;a = b;b = tmp;cout << "在SwapValue()函数中:\t\ta=" << a << ",b=" << b << endl;return;
}
void SwapRef(int & a, int &b) //a,b值互换
{int tmp;tmp = a;a = b;b = tmp;cout << "在SwapRef()函数中:\t\ta=" << a << ",b=" << b << endl;return;}
int main() {int a = 10, b = 20;cout << "数据交换前:\t\ta=" << a << ",b" << b << endl;SwapValue(a, b);cout << "调用SwapVal()后:\t\ta=" << a << ",b=" << b << endl;a = 10; b = 20;SwapRef(a, b);cout << "调用SwapRef()后:\t\ta=" << a << ",b=" << b << endl;return 0;
}
//函数SwapVlue()的形参是两个整型变量,SwapRef()的形参是两个引用。

课本测试7引用作为函数返回值

#include <iostream>
using namespace std;
int oneX = 10;
int oneY = 20;
int & refValue(int & x) {return x;
}
int main()
{refValue(oneX) = 30;//返回值是引用,可以作为左值使用cout << "oneX=" << oneX << endl; //输出oneX=30refValue(oneY) = 40; //返回值是引用的函数调用表达式,可以作为左值使用cout<< "oneY=" << oneY << endl; //输出oneY=40return 0;
}

课本测试8常量说明示例.cpp

#include <iostream>
using namespace std;
int main()
{int a1 = 3; //普通变量,a1=5是正确的const int a2 = a1; //数据时常量的,a2=5是错误的int *a3 = &a1;//普通指针指向普通变量,*a3=6是正确的const int * a4 = &a1;//数据时常量的,普通指针*a4=5shi1cuowu1d1int * const a5 = &a1;//指针是常量的,不能修改指针,但*a5=10是正确的int const * const a6 = &a1;//数据时常量的,指针也是常量的const int * const a7 = &a1;//数据时常量的,指针也是常量的return 0;
}
//在声明const int a2中,const 修饰的是 int ,即a2表示一个常量,这个常量不会改变,所以不能写类似 a2=5 这样的语句。
//在声明 const int * a4中,const 修饰的是int 说明a4是指向常量的指针,不能通过指针a4修改指向的内容,
//在声明 int * const a5 中,const修饰的是* 说明这是一个常量指针,
//这个指针只能指向初始化时指向的地址,不能再指向其他地址,即不能改变它的指向

课本测试9函数的重载.cpp

#include <iostream>
using namespace std;//返回两个int型数中的较大者
int biggerInt(int x, int y) {if (x > y)return x;else return y;
}//返回两个float型数中的较大者
float biggerFloat(float x, float y) {if (x > y)return x;else return y;
}//返回两个double型较大者
double biggerDouble(double x, double y) {if (x > y)return x;else return y;
}
int main() {//调用函数时进行有必要的类型提升int xI = 10, yI = 20;float xF = 30, yF = 40;double xD = 50, yD = 60;cout << biggerDouble(xI, yF) << endl;}

C++小白课本练习2相关推荐

  1. C++小白课本练习5

    练习目录 成员的访问 Box.h 第二章课本测试6类成员的访问.cpp CEmplyee.h 第二章课本测试7类成员访问示例.cpp 成员的访问 Box.h #pragma once int main ...

  2. C++小白课本练习4

    练习目录 ConsoleApplication1.h 头文件定义类 Student myDate Student 类 myDate 类 第二章课本测试3验证类功能的驱动程序.cpp 第二章课本测试4使 ...

  3. C++小白课本练习3

    练习目录 课本测试10动态分配整型数组.cpp 字符串对象处理字符串 课本测试12string的使用.cpp 字符串成员函数的使用.cpp 课本测试10动态分配整型数组.cpp #include &l ...

  4. C++小白课本练习1

    练习目录 练习cout cin 输入输出 练习强制类型转换 练习函数参数的默认值 练习cout cin 输入输出 #include <iostream> #include <stri ...

  5. python快速编程入门课本中的名片管理器_python打造名片管理系统,小白入门最佳练手项目!...

    名片管理小系统 名片信息包含姓名.电话.QQ; 系统功能:增加用户信息.修改信息.删除信息.查询信息.退出系统.打印名片: 操作为:用户每次都可以进行选择,直到用户选择退出系统为止: 学习Python ...

  6. 我是如何从程序小白成为码农的

    转眼大学生活就要结束了,想想还真有点舍不得.简单叙述一下我大学的编程生涯. 大学一年级,对我来说,可以说基本上没有接触到什么编程的技能,买了个笔记本也就是用来聊聊天看看电影什么的.至于C语言是什么,我 ...

  7. matplotlib plot 分组_小白学 Python 数据分析(16):Matplotlib(一)坐标系

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  8. 理财就是理生活 —— 小白理财训练营(下)

    第五课:本金不够多,开源来解决 开源养鹅法 之前的课程中我们了解了五类投资品,想要依靠投资赚钱,增加本金是必不可少的.增加本金是我们"养鹅"的过程,把鹅养得越肥,鹅下的蛋才会越多. ...

  9. 跨专业本科毕业小白程序员的入职心得——第一篇

    睡前随便写点软文,一是为了以后有时间可以自己回忆一下自己的求职之路,如果恰巧这篇文章对其他刚毕业的同学有一些帮助,我将感到十分荣幸. 你是否也是刚毕业不久,或者还未毕业,对未来的工作感到一片迷茫?感到 ...

最新文章

  1. SQL 2014 in-memory中的storage部分
  2. [Bug]当IDENTITY_INSERT设置为OFF时,不能为表“xx”中的标识列插入显示的值
  3. Python与C之间的相互调用
  4. 46. Permutations (Back-Track,Sort)
  5. C语言写300k文件大概多少行,为什么 DELPHI 编译出的程序一般的来说至少都有300k呢?...
  6. 电脑用户名_仁霸下料优化软件如何找回密码、更换绑定电脑?
  7. 公有云 私有云 混合云_混合云的承诺,收益和产品
  8. 一步步编写操作系统 55 CPL和DPL入门2
  9. 吴恩达机器学习6——机器学习算法改进、系统设计
  10. tomcat端口被占用问题完美解决方案!
  11. 小米路由器刷梅林教程_小米路由器3刷X-Wrt固件教程
  12. qt定时器暂停与重新开始_Qt编写自定义控件22-蚂蚁线
  13. linux、mysql、nginx、tomcat 环境下压力测试的主要调试参数
  14. 《java websocket》之 实现
  15. non-compatible bean definition of same name and class [com.echo.util.FileUploadDispatcher]
  16. Python编程从入门到实践 -----第4章、操作列表(课后习题答案)
  17. CAD7:构造线的使用 【TR剪掉多余的线】
  18. 同一局域网下 macOS 和 windows 电脑 如何快速共享文件
  19. 实验2:MIPS指令系统和MIPS体系结构
  20. IDEA项目启动成功,但是打断点识别不了(打断点无效)

热门文章

  1. pcl之将QVTKWidget添加到QtCreator
  2. PCL——快速邻域搜索
  3. WCF 第一章 基础 更多关于配置文件的内容
  4. AI进入制造业 节省人工成本也能提高产品性能
  5. jsoncpp的安装与使用实战(windows交叉编译Ubuntu)
  6. mysql配置文件编写_MySQL5.7.28 配置文件编写
  7. 「爬虫入门」拒绝跟热点搞python,直接在浏览器里体验『第一次』,理解原理=>如鱼得水
  8. 【李宏毅2020 ML/DL】P4 Basic Concept
  9. asterisk php agi,asterisk AMI入门
  10. 逻辑门的Verilog实现与仿真