C++中的常量、表达式、函数

变量
  1. 变量定义: 类型 标识符 = 常量,
  2. 含义: 申请以标识符命名的指定类型的储存空间

访问变量:对象占有内存的第一个字节的地址为对象地址(0X),通过对象名或地址进行读写访问

  1. 指针类型变量定义: 类型 * 标识符 = &变量 , 初始赋值为0/null, &为取址符, *为解址符
  2. 含义: 存放对象地址的变量

交换指针值: 通过第三方指针变量; 交换指针对象值:通过第三方对象变量

void类型指针按转换类型解释所指对象

引用
  1. 引用定义: 类型 & 引用名 = 变量名
  2. 含义: 引用相当于变量别名,指向同一地址,不得重定义.
常量
  1. 常量约束定义: const 类型 标识符 = 常量值/表达式
  2. 含义:关键字const约束对象只读

常量指针定义: const 类型
*标识符 = &常量/变量(间址只读)

指针常量定义: 类型 *
const 标识符 = &变量(定义初始化)

指向常量的指针常量定义: const 类型 * const 标识符 = &常量/变量(间址只读)(定义初始化)

常引用定义: const 类型
& 引用名 = 变量名, 引用只读

表达式

表达式类型: 算术(sizeof)、逻辑(关系,逻辑)、条件(三目)、赋值、逗号表达式

运算符优先级:

引用对象 > 单目(右) > 算术 > 位运算/提取符 > 关系 > 按位/逻辑 > 条件(右) > 赋值(右) > 逗号

其中 : 乘除 > 加减 > 提取 > 大小 > 对等 > 按位 > 逻辑 > 三目 > 赋值

例如: b = a++ / ++a ,编译扫描器从左开始识别运算符,根据顺序及优先级会出现

b = a,a++/a++,b=a 两种结果

表达式算术运算值只有(int、double、long、unsigned int/long)五种类型,向高长看齐,具有强制性,

类型转换会逐算符且先转换括号内类型

逻辑表达式只有True、False两值,包含关系、逻辑运算符进行左结合运算

当表达式&&(与)
第一个值为False不对后面求值,当||(或) 第一个值为True不对后面求值

赋值表达式称为左值表达式,可右结合关联赋值,结合后省略右值继续运算

与双目运算符结合可缩写表达式:A = A op B --> A op= B

输入输出流iostream 中输出格式控制符有:endl换行清空流、ends空格清空流、dec/oct/hex进制、

setfill()填充符,setprecision()浮点输出精度、setw()输出宽度

函数

函数是功能抽象的模块;作用为任务划分与代码重用;一个c++文件最少有一个函数即主函数

函数有输入流,函数体与输出流,输入流有参数(指针,引用,值),输出流有返回值与参数(调用,指针,引用)

定义形式:

  1. 函数头(函数接口): 返回值类型 函数名(形式参数表)
  2. 函数体(功能实现): 语句序列;return(不执行后续语句,且强转返回值,空可省)

当调用在定义之前需要声明函数原型: 返回值类型 函数名(形参列表) ; 声明语句加分号

原型形参名可省略,函数可作为原型,函数地址为函数名指向的地址

形参列表需与函数形参一一对应,其中有默认值的在最后,且重载时不允许有除默认值项外相同的原型

调用函数时实参需与形参对应,参数传递有值传递,指针传递,引用传递,

传值参数会复制实参值到形参对象中(强转),修改在形参对象中完成,不影响实参,实参可以是常量,初始化变量或表达式,函数返回值通过匿名对象返回后对象撤销

你可能感兴趣的:(技术积累)