1. 表达式只计算,抛弃计算结果;

2. 空语句什么也不做;

3.switch case语句漏写break,将会从匹配到的情况开始执行,直到语句结束

int main()
{
int i = ;
i + ; //表达式
; //空语句
while(cin >> i && i != )
; //空语句
switch(i){
case :
cout << "" << endl;
case : //开始执行
cout << "" << endl;
case :
cout << "" << endl;
default:
cout << "" << endl;//执行结束
}
return ;
}

4. 形参、实参、局部变量、静态局部变量

所谓形参就是占位之用,在函数开始时申请空间,并由传入实参进行实例化(也可称拷贝构造)。一般是局部的,即只能在函数体内可见。

实参用来实例化/初始化形参

局部变量的作用域是函数体或者语句内部,但是加上static修饰就变成了静态局部变量,它作用域还是该函数体,但生命期延长到了程序终止。

int countCalls(int a, int b)
{
static int calls = ;//静态局部变量
return ++calls;
} int main()
{
for(int i=; i<; i++)
cout << countCalls(, ) << endl;
//cout << calls << endl;//无法访问
return ;
}

5. 函数返回值,还是发生了拷贝,即用函数体内的某变量初始化函数调用点的某临时量。

6. 不要返回局部变量的引用或指针,返回后就销毁了,没地儿去找了。

7. 引用返回左值,其他类型返回的是右值。

8. 内联函数适用于优化规模较小、流程直接、频繁调用的函数。

9. 有趣的返回错误信息的宏(静态变量)

void trouble(int m)
{
if(m == )
{
cout << "Error : " << __FILE__;
cout << " in function " << __func__;
cout << " at line " << __LINE__;
cout << " complie on " << __DATE__;
cout << " at " << __TIME__;
}
}

10.函数重载二义性

(1)无参函数VS有参有默认值,歧义

int get(){
return a;
}
int get(int a = ){
return a;
}
//调用get()

(2)传值VS传引用,歧义

int get(int a){
return a;
}
int get(int &a){
return a;
}
//int m = 10;
//调用get(m)

(3)参数存在隐式类型转换,歧义

int get(int m){
return m;
} long get(long m){
return m;
}
//double m = 10.123
//调用get(m)

参考资料

【1】https://blog.csdn.net/chenxiaohua/article/details/2128899 (有点问题)

【2】https://blog.csdn.net/loving_forever_/article/details/51472127 (有点问题)

C++ 语句函数再探的更多相关文章

  1. 再探jQuery

    再探jQuery 前言:在使用jQuery的时候发现一些知识点记得并不牢固,因此希望通过总结知识点加深对jQuery的应用,也希望和各位博友共同分享. jQuery是一个JavaScript库,它极大 ...

  2. [老老实实学WCF] 第五篇 再探通信--ClientBase

    老老实实学WCF 第五篇 再探通信--ClientBase 在上一篇中,我们抛开了服务引用和元数据交换,在客户端中手动添加了元数据代码,并利用通道工厂ChannelFactory<>类创 ...

  3. 【再探backbone 02】集合-Collection

    前言 昨天我们一起学习了backbone的model,我个人对backbone的熟悉程度提高了,但是也发现一个严重的问题!!! 我平时压根没有用到model这块的东西,事实上我只用到了view,所以昨 ...

  4. ViewPager+Fragment再探:和TAB滑动条一起三者结合

    Fragment前篇: <Android Fragment初探:静态Fragment组成Activity> ViewPager前篇: <Android ViewPager初探:让页面 ...

  5. 再探java基础——break和continue的用法

    再探java基础——break和continue的用法 break break可用于循环和switch...case...语句中. 用于switch...case中: 执行完满足case条件的内容内后 ...

  6. python再探

    python是一门强大的高级编程语言,之前的文章中介绍了python的基础知识,接下来会介绍一些python更为高级的知识. 面向对象编程 基本知识 一般编程思想分为面向过程和面向对象,前者的基本单元 ...

  7. 深入出不来nodejs源码-内置模块引入再探

    我发现每次细看源码都能发现我之前写的一些东西是错误的,去改掉吧,又很不协调,不改吧,看着又脑阔疼…… 所以,这一节再探,是对之前一些说法的纠正,另外再缝缝补补一些新的内容. 错误在哪呢?在之前的初探中 ...

  8. 再探Redux Middleware

    前言 在初步了解Redux中间件演变过程之后,继续研究Redux如何将中间件结合.上次将中间件与redux硬结合在一起确实有些难看,现在就一起看看Redux如何加持中间件. 中间件执行过程 希望借助图 ...

  9. c++再探string之eager-copy、COW和SSO方案

    在牛客网上看到一题字符串拷贝相关的题目,深入挖掘了下才发现原来C++中string的实现还是有好几种优化方法的. 原始题目是这样的: 关于代码输出正确的结果是()(Linux g++ 环境下编译运行) ...

随机推荐

  1. 最简易的python web框架的后端实现

    1.源代码 #!/usr/bin/python #encoding=utf-8 from flask import json, Flask, request app = Flask(__name__) ...

  2. 阶段5 3.微服务项目【学成在线】_day07 课程管理实战_04-新增课程-数据字典

    课程的等级是个单选按钮 2.3 数据字典 2.3.1介绍 在新增课程界面需要选择课程等级.课程状态等,这些信息统一采用数据字典管理的方式. 本项目对一些业务的分类配置信息,比如:课程等级.课程状态.用 ...

  3. 123457123456#0#-----com.threeapp.magicImageShow01----儿童宝宝魔法画笔

    com.threeapp.magicImageShow01----儿童宝宝魔法画笔

  4. Python3之切片及内置切片函数slice

       切片   取一个list或tuple的部分元素是非常常见的操作.比如,一个list L=[0,1,2,3,4,5,6,7,8,9] 取前3个元素,应该怎么做 笨方法,一个个列出来 >> ...

  5. 【ARTS】01_38_左耳听风-201900729~201900804

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  6. 【计算机视觉】OpenCV读取视频获取时间戳等信息(PS:经测试并不是时间戳,与FFMPEG时间戳不一样)

    OpenCV中通过VideoCaptrue类对视频进行读取操作以及调用摄像头,下面是该类的API. 1.VideoCapture类的构造函数: C++: VideoCapture::VideoCapt ...

  7. iframe里访问父级里的方法属性

    window.parent.attributeName;  // 访问属性attributeName是在父级窗口的属性名 window.parent.Func();  // 访问属性Func()是在父 ...

  8. 使用django进行大文件的上传下载

    下载 基于Django建立的网站,如果提供文件下载功能,最简单的方式莫过于将静态文件交给Nginx等处理,但有些时候,由于网站本身逻辑,需要通过Django提供下载功能,如页面数据导出功能(下载动态生 ...

  9. linux下使用Vsftpd服务传输文件

    FTP协议占用两个端口号: 21端口:命令控制,用于接收客户端执行的FTP命令. 20端口:数据传输,用于上传,下载文件数据. 过程: 首先安装vsftpd服务程序使用命令 yum install v ...

  10. nginx rewrite 规则

    rewrite功能:使用nginx提供的全局变量或自设定的变量,结合正则表达式和标志位实现url重写以及重定向. 配置域:server,localtion. flag标志位     last : 相当 ...