笔记5 《C++大学教程》

来源:互联网 发布:java项目自我评价 编辑:程序博客网 时间:2024/06/06 03:06

第六章 函数和递归入门

实参和函数原型中形参不匹配时,编译器会按照C++升级规则升级;
#include <cstdlib>使用C++标准库函数rand 生成伪随机数,一定范围内的随机数,可按如下公式:

number = shiftingValue + rand() % scalingFactor

枚举类型由关键字enum开头,后跟一个类型的名字,是一组由标识符表示的整型常量。通常从零开始,除非指定,否则逐次增1;

关键字auto register用于声明自动存储类别的变量。
关键字extern static用于声明静态存储类别的变量和函数标识符。
把变量放在任何类或函数之外就创建了全局变量,具有文件作用域。
标签是唯一具有函数作用域的标识符
C++可以定义多个具有相同函数名称的函数,只要这些函数具有不同的参数集合,这种特性是函数重载,检测实参个数,类型,顺序来确认函数。
所有函数模版定义都以template关键字开头,后跟函数的模版参数列表,该列表括在一对尖括号中(< >),列表中的每个参数(形式类型参数)由关键字typename 或者关键字class开头,(两者是同义词)
递归函数是直接地或间接的调用自身的函数。
递归有许多不足之处,重复调用必然会带来很多开销,消耗处理器时间,消耗内存空间,每个递归调用都会创建函数的一份副本,也会占用相当的内存。

存储类别说明符有5种 mutalbe auto register static extern
标识符的六个可能作用域

函数作用域 文件作用域 语句块作用域 函数原型作用域 类作用域 名字空间作用域

const限定符用于声明只读变量

函数原型的函数名和参数类型部分称为函数签名,不包括函数的返回值类型。

srand函数可以为rand函数设置种子

堆栈被称为后进先出的数据结构

无参函数 空的参数列表可以通过在圆括号里面写上void或什么都不写

内联函数在函数的返回值类型前添加限定符inline,可以“建议”编译器在适当的地方生成函数代码的副本以避免函数调用。可以减少执行时间,但会增加程序尺寸

两种函数参数传递方式:按值传递,引用传递(引用参数&、指针)

默认实参 重复调用函数时,对某个特定的形参一直用相同的实参。默认实参必须是函数参数列表中最靠右边的参数。调用有两个或以上默认实参的函数时,如果省略的实参不是最靠右的,则该实参右边所有参数必须被省略。 默认值可以是任何表达式、包括常量全局变量或函数调用。默认实参也能用于内联函数。

一元作用域分辨运算符 :: 以便当作用域中的局部变量和全局变量具有相同名字时访问全局变量,不能使用一元作用域分蝙蝠访问外层语句块中具有相同名字的局部变量

C++ 只指定了四种运算符的求值顺序,分别是 && || , ?: 从左往右

原创粉丝点击