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. Flutter常用命令和mac电脑常用命令

    0.  flutter create example_demo  新建flutter项目 1.flutter packages get  安装新增的包 2.flutter run 运行flutter项 ...

  2. Mysql coalesce()函数认识和用法

    Mysql coalesce()函数认识和用法   coalesce()解释:返回参数中的第一个非空表达式(从左向右):    鉴于在mysql中没有nvl()函数, 我们用coalesce()来代替 ...

  3. LD_LIBRARY_PATH无效

    在os x 上设置LD_LIBRARY_PATH无效,env命令看不到这个变量,下面的文章说明了这个问题 说明:网上基本针对这个值的设置分为两面,Windows派和Linux派,Windows的不说, ...

  4. MySQL创建触发器样例

    # init DROP TABLE IF EXISTS students; DROP TABLE IF EXISTS class; # 创建测试用的班级表 CREATE TABLE class ( c ...

  5. 手动mvn install指令向maven本地仓库安装jar包

    mvn install:install-file -DgroupId=imsdriver(jar包的groupId) -DartifactId=imsdriver(jar包的artifactId) - ...

  6. 【MM系列】SAP S/4 HANA的物料编码40位设置

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP S/4 HANA的物料编码4 ...

  7. 如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture/html2picture

    如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture [困扰?疑问?]: 您是否正受到:如何将网页保存为图片的困扰?网页很高很长截图截不全 ...

  8. 【ARM-Linux开发】ARM板卡上QT显示中文

    平台:Freescale imx6  编译系统:yocto  Qt版本:5.5.1 刚弄了个Qt程序到开发板,发现中文都没有显示,英文可以显示.  就加了个中文字库.DroidSansFallback ...

  9. mysql 数据库批量刷新表字段数据

    UPDATE a,bSET b.studentno = a.studentnumber WHERE b.studentno IS NULL AND a.p_id = b.p_id

  10. 洛谷 题解 P1225 【黑白棋游戏】

    看见很多dalao写了什么双向BFS,蒟蒻表示不会写啊. 怎么办办? 先来分析一下题目,一眼看去就是一个搜索题,考虑DFS与BFS. 先放一份DFS的代码: #include<bits/stdc ...