《C++Primer》读书笔记(5)
2015-04-14 13:33
176 查看
1.switch语句,有时我们可以故意不使用break语句,达到想要的效果。
但是遇到这种情况最好要写一段注释,说明一下。
正常情况下还是要写break语句的,漏写会引发很严重的后果。
2.局部静态变量,在函数内部定义一个static变量,函数终止之后,这个局部的静态变量仍然有效。
静态变量如果不初始化,会默认初始化为0。
3.在循环中,如果其中有return时,需要在循环之后也加上return语句,这点平时经常容易忽略。如果循环没有进行,则无法进行正常return。
4.返回值如果是函数中定义的变量,应该是存于堆内存的,否则会在函数结束后销毁,导致错误。
5.返回数组
C++没有返回数组的操作,但是数组其实可以看成指针,使用指针将数组首地址传递回去。
指向指针的数组如是定义: int (*p) [10] = &arr;
则返回指向数组的指针的函数如是定义: int (* func(argu...))[10],返回一个指向大小为10的int型数组的指针
6.函数的默认参数
但是遇到这种情况最好要写一段注释,说明一下。
正常情况下还是要写break语句的,漏写会引发很严重的后果。
2.局部静态变量,在函数内部定义一个static变量,函数终止之后,这个局部的静态变量仍然有效。
静态变量如果不初始化,会默认初始化为0。
3.在循环中,如果其中有return时,需要在循环之后也加上return语句,这点平时经常容易忽略。如果循环没有进行,则无法进行正常return。
4.返回值如果是函数中定义的变量,应该是存于堆内存的,否则会在函数结束后销毁,导致错误。
5.返回数组
C++没有返回数组的操作,但是数组其实可以看成指针,使用指针将数组首地址传递回去。
指向指针的数组如是定义: int (*p) [10] = &arr;
则返回指向数组的指针的函数如是定义: int (* func(argu...))[10],返回一个指向大小为10的int型数组的指针
6.函数的默认参数
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; void defalutArguFunc(int num = 100, int index = 200); int _tmain(int argc, _TCHAR* argv[]) { int a, b; cin>>a; cin>>b; defalutArguFunc(a); getchar(); } void defalutArguFunc(int num, int index) { cout<<num<<endl; cout<<index<<endl; }在这里,如果函数有默认的参数,如果接收的参数少于规定的参数个数,则未给出参数的形参将被赋予默认值 。
相关文章推荐
- 《C++Primer》读书笔记(6)
- 《C++Primer》读书笔记——第一章:开始
- 《C++Primer》读书笔记——第10章 泛型算法
- 【读书笔记】C++Primer---第一章
- 《C++Primer》读书笔记——第6章 函数
- 《C++Primer》读书笔记——第11章 关联容器
- 《C++Primer》读书笔记(二)C++基础(上)
- 《C++primer》读书笔记---数组和指针
- C++Primer 读书笔记 第1章 开始
- 《C++Primer》读书笔记(10)
- 《C++Primer》读书笔记--命名空间
- 《C++primer》读书笔记一
- 《C++Primer》读书笔记--函数模板
- 《C++Primer》读书笔记——第3章 字符串、向量和数组
- 《C++Primer》读书笔记——第7章 类
- 《C++Primer》读书笔记——第12章 动态指针与内存管理
- 《c++primer》读书笔记二 复制控制
- 《C++primer》读书笔记——关于const引用
- 《c++primer》 读书笔记
- 《C++Primer》读书笔记(二)C++基础(下)