C++程序设计第二章

C++程序设计第二章

C++简单程序设计

C++的基本数据类型

  • 整数类型
  • 实数类型
  • 字符类型
  • 布尔类型

C++的基本运算

  • 算术运算
  • 逻辑运算

程序要能输入数据,输出数据

C++的输入输出可以调用预定义的功能模块实现

程序的执行流程不总是顺序的因此程序要能够

  • 对执行流程进行选择(选择/开关语句)
  • 反复用同一算法依次处理大批量数据(循环语句)

基本数据类型能表示的有限

程序员要能够自定义类型

枚举类型

  • 通过列出所有可取值来定义一种新类型

C++特点和程序实例

  • 从C语言发展而来,最初称为带类的C
  • 1983年正式取名为C++;
  • 1998年11月被国际标准化组织(ISO)批准为国际标准;
  • 2003年10月15日发布第2版C++标准ISO/IEC 14882:2003;
  • 2011年8月12日ISO公布了第三版C++标准C++11,包含核心语言的新机能、扩展C++标准程序库。
  • 2014年8月18日ISO公布了C++14,其正式名称为"International Standard ISO/IEC 14882:2014(E) Programming Language C++"。
  • C++14作为C++11的一个小扩展,主要提供漏洞修复和小的改进。

C++的特点

  • 兼容C,支持面向过程的程序设计
  • 支持面向对象的方法
  • 支持泛型程序设计方法

命名空间

  • 避免命名冲突
  • std是C++标准库的命名空间名
  • using namespace std 表示打开std命名空间

输出Hello

#include <iostream>
using namespace std;

int main() {
    cout << "Hello!" << endl;
    cout << "Welcome to C++!" << endl;
    return 0;
}

C++字符集和词法记号

词法记号

  • 关键字
    C++预定义的单词
  • 标志符
    程序员声明的单词,它命名程序正文中的一些实体
  • 文字
    在程序中直接使用符号表示的数据
  • 分隔符
    (){};:,用于分隔各个词法记号或程序正文
  • 运算符(操作符)
    用于实现各种运算的符号
  • 空白符
    空格, 制表符,垂直制表符,换行符,回车符和注释的总称

标识符的构成规则

  • 以大写字母,小写字母或下划线开始
  • 可以由大写字母,小写字母,下划线或数字组成
  • 大写字母和小写字母代表不同的标识符
  • 不能是C++关键字或操作符

基本数据类型,常量,变量

程序中的数据

  • 常量
    在源程序中直接写明的数据
    其值在整个程序运行期间不可改变
  • 变量
    在程序运行过程中可以改变

整数类型

  • 基本的INT型
  • 按照符号分
    • 有符号
    • 无符号
  • 按照数据范围分
    • 短整数 short
    • 长整数 long
    • 长长整数 longlong

字符类型

  • 字符容纳单个字符的编码
  • 实质上存储的也是整数

浮点数类型

  • 单精度 float
  • 双精度 double
  • 扩展精度 long double

字符串类型

  • 有字符串常量
  • 基本类型中没有字符串变量
  • 采用字符数组存储字符串
  • 标准C++库中的String类

布尔类型

  • 只有两个值,真 true 假 false

常量

  • 在程序运行中不可改变的量
  • 直接使用符号(文字)表示的值
  • 例如:12,3.5,'A’都是常量

整数常量

  • 十进制
  • 八进制
  • 十六进制

后缀

  • L = long
  • LL = longlong
  • U = 无符号

浮点数常量

  • 以文字形式出现的实数
  • 默认double ,如果后缀F可以指定成float

C风格字符串

  • 一对双引号的字符
  • 在内存中按串中字符的排列次序顺序存放,每个字符占一个字节
  • 在末尾添加’\0’作为结尾标记

变量

在程序运行过程中可改变的量

变量定义

  • 类型 变量名

在定义变量的同时可以初始化

C++多种初始化

  • int a = 0;
  • int a(0)
  • int a = {0}
  • int a{0}

列表初始化

  • 使用大括号的初始化方式
  • 不允许信息的丢失

符号常量

常量定义语句的形式:

  • const 数据类型说明符 常量名 = 值
  • 数据类型说明符 const 常量名 = 值

符号常量定义一定需要初始化,在程序中不能改变值

程序举例

读入并显示整数
#include <iostream>
using namespace std;

int main() {
    int radius;
    cout << "Please enter the radius\n";
    cin >> radius;
    cout << "The radius is:" << radius << "\n";
    cout << "PI is:" << 3.14 << "\n";
    cout << "Please enter a different radius\n";
    cin >> radius;
    cout << "Now the radius is changed to:" << radius <<"\n";
    return 0;
}

运算与表达式

算术运算与赋值运算

基本算术运算

  • ±*/(整数相除,结果为整数)
  • %取余运算(结果为整数)

优先级与结合性

  • 先乘除,后加减,同级自左至右

自增自减操作

赋值操作
通过赋值运算符=赋值给变量

复合赋值运算符有10种

  • +=, -=, *=, /=, <<=, >>=, &=, ^=, |=

符号运算,关系运算,逻辑运算和条件运算

逗号运算和逗号表达式

  • 格式
    表达式1,表达式2
  • 求解顺序及结果
    先求解表达式1,在求解表达式2
    用表达式2的结果作为结果
  • 例子
    a = 3 * 5, a * 4 最终结果为60

赋值运算符优先级比逗号低

关系运算

  • 优先级
    高的:< <= >= >
    低的:== !=
  • 关系表达式是一种最简单的逻辑表达式
  • 结果是布尔类型,true or false

逻辑运算符

  • 优先级从高到低:! && ||
  • 结果是布尔类型
  • && 的运算规则
    • 两侧表达式都为真,结果为真
    • 有一侧表达式为假,结果为假
  • || 的运算规则
    • 两侧表达式都为假,结果为假
    • 有一侧表达式为真,结果为真

&& 的短路特性

  • 先求解表达式1,
  • 若表达式1的值为false,则最终结果为false,不再求解表达式2
  • 若表达式1的值为true,则求解表达式2,以表达式2的结果作为最终结果

|| 的短路特性

  • 先求解表达式1
  • 若表达式1的值为true,则最终结果为true,不在求解表达式2
  • 若表达式1的值为false,则求解表达式2,以表达式2的结果作为最终结果

条件运算符

  • 一般形式
    • 表达式1 ? 表达式2 : 表达式3
    • 表达式1必须是bool类型
  • 执行顺序
    • 先求解表达式1
    • 若表达式1的值为true,则求解表达式2,表达式2的结果作为最终结果
    • 若表达式1的值为false,则求解表达式3,表达式3的结果作为最终结果
  • 条件运算符优先级高于赋值运算符,低于逻辑运算符

sizeof运算,位运算

sizeof运算符

  • 语法形式
    sizeof(类型名) 或 sizeof 表达式
  • 结果值
    类型名 所指定的类型,或 表达式 的结果类型所占的字节数

按位与

  • 运算规则
    将两个运算量的每一个位进行逻辑与操作
  • 例子
    计算 3 & 5
    0000 0011
    0000 0101
    结果0000 0001
  • 用途,将某一位置0,取出某一位

按位或

  • 运算规则
    将两个运算量的每一个位进行逻辑或操作
  • 用途,将某一位置1

按位异或

  • 运算规则
    两个操作数进行异或
    若对应位相同,结果为0
    若对应位不同,结果为1
  • 计算 071 ^ 052
    0011 1001
    0010 1010
    结果 0001 0011
  • 用途,特定位翻转

按位取反

  • 运算规则
    0 变 1, 1 变 0

移位操作

  • 左移后,低位补0,高位舍弃
  • 右移后,低位舍弃,高位无符号数补0,有符号为补符号位

运算优先级,类型转换

一些运算符要求数据类型一致
隐含转换的基本原则是低类型转换到高类型

浮点数换成整数,小数部分直接丢弃
整数换成浮点数,小数为0,可能丢失精度

显示转换

  • 类型说明符(表达式)
  • (类型说明符)表达式
  • 类型转换操作符 <类型说明符> (表达式) C++的转换方式
    • 类型转换操作符:const_cast,dynamic_cast ,reinterpret_cast,static_cast
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值