C++语言程序设计基础

概念

源程序: 由程序员使用源语言(也叫编程语言,此处指C++)写出的高级语言程序被称为高级语言源程序。
目标程序: 高级语言源程序通过翻译程序加工以后生成的机器语言程序(是二进制代码)被称为目标程序。
可执行程序: 连接目标程序以及库中的某些文件,生成的一个可执行文件(如.exe)。

翻译程序分为以下几种类型:
汇编程序:将汇编语言源程序翻译成目标程序。
编译程序:将高级语言源程序翻译成目标程序。
解释程序:将高级语言源程序翻译成机器指令,它是边翻译边执行

进制转换

十进制整数转二进制整数

在这里插入图片描述

十进制小数转二进制小数

在这里插入图片描述

二进制转十进制

在这里插入图片描述

二进制数的编码表示问题

原码:"符号-绝对值"表示的编码。

1/0表示正/负存在一个bug,当值为零时,会存在两个表示方法,即存在表示方法不唯一问题。如+0:0 000 和-0:1 000。
且在进行四则运算时,符号位须单独处理且运算规则复杂。

补码的特点

  1. 零的表示唯一
  2. 符号位可作为数值参与运算
  3. 减法运算可转换为加法运算

模数:n位二进制整数的模数为2^n,n位小数的模数为2。
补数:一个数减去另一个数(加一个负数),等于第一个数加第二个数的补数。
反码:在原码的基础上,保持负数的符号位不变,除了符号位以外的其他位全部取反。正整数的原码和反码和补码均相同。
补码:反码的最低为加一即为补码。简称原码求反加一。

补码符号位保持不变,再次求补即可得到原码。
如果负数之和得正数或正数之和得负数,则说明运算结果溢出。

浮点数是用小数点浮动的方式来表示的。

简单程序示例

cout是输入输出流类库中的一个标准输出流对象。
使用cout前,需要提前把定义cout的<iostream>输入输出流类库这个头文件包含进来。

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello World!\n";
}

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

在生成发布版本之前,需要清除早期生成过程中创建的中间文件和输出文件,确保其是最终版本。

点击"生成"菜单中的"清理解决方案"即可。
改"Debug"为"Release",点击"生成"菜单中的"生成解决方案"即可生成发行版本。
main(){} 叫做主函数
cout 是预定义好的类的对象,在类库中存放。
两个连续的小于号 是一个运算符,这是一个流插入运算,会将后面的一串字符串插入到输出流里面去。
数据的输出就是信息的流动,输出流就是你程序空间到外部设备之间的一个信息流动的通道。
当需要向外部设备送信息的时候,首先先建立一个能够流通信息的通道,叫输出流。
cout负责向这个流里面送数据,送数据的这个动作就是用插入运算符(两个连续小于号)实现的。
endl 是预定义好的符号,表示行结束,屏幕表现为换行。
int main(){} 是规定该函数的返回值应该是一个整数类型。
include iostream 是包含一个文件(iostream)进来。
iostream 是一个文本文件的名字,是被用来包括在别的程序头上的,所以叫头文件。
iostream 该文件里面给出了预定义好的这些输入输出功能的相应的声明。
include 是编译预处理命令。即编译器在做语法检查和开始编译该段程序之前,首先要按照include指令到约定的目录下找到iostream这个文件,把这个文件的全部内容复制粘贴到include语句所在的位置(与手动复制粘贴效果一致)。该文件内包含了对cout的必要的声明。
using namespace std 意为打开std这个命名空间,是为了避免命名冲突(担心重名)。
所有在标准库里面的名字,它有一个共同的命名空间,这个命名空间的名字叫std。
std::cout 双冒号表示作用域,分辨符。
凡是以双斜线开头的行,都是注释行。

字符集

在这里插入图片描述

词法记号

在这里插入图片描述

标识符的构成规则

在这里插入图片描述

C++能够处理的基本数据类型

整数类型

  • 基本的整数类型:int
  • 按符号分:符号的(signed)、无符号的(unsigned)
  • 按照数据范围分:短整数(short)、长整数(long)、长长整数(long long)

实数类型(浮点数类型)

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

字符类型

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

布尔类型

  • 只有两个值:true(真)、false(假)
  • 常用来表示关系比较、相等比较、逻辑运算的结果。

字符串类型

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

在这里插入图片描述

程序中的数据

常量:

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

整数常量
在这里插入图片描述
浮点数常量
在这里插入图片描述
字符常量
在这里插入图片描述
C风格字符串常量
在这里插入图片描述
在这里插入图片描述

变量:

  • 在程序运行过程中允许改变的数据

初始化变量的方式
在这里插入图片描述
列表初始化:

  • 使用大括号的初始化方式
  • 不允许信息的丢失
  • 例如:用double值初始化int变量会造成数据丢失

符号常量
在这里插入图片描述

简单程序示例2

知识点

  • 常量:在源程序中直接写明的数据,其值在整个程序运行期间不可改变,这样的数据称为常量。
  • 变量:在运行过程中从计算机的外部设备(如键盘、硬盘等)读取的,这些数据的值在程序运行过程中允许改变,这样的数据称为变量。
  • 从键盘输入数据:iostream类的对象cin的>>操作,可以从标准输入设备(通常是键盘)读入数据。
  • 数据的存储:为了存储数据,需要预先为这些数据分配内存空间。变量的定义就是在给变量命名的时候分配内存空间。
  • !!浮点数在机器里面是近似存储的,其存储的值可能与你期望的值有少许差异,所以千万不能在程序中比较两个浮点数是否相等。所以,在比较两个浮点数是否相等时,比较的是两个浮点数之差是否充分小。
#include <iostream>
using namespace std;

int main()
{
    const double pi(3.14159);
    int v1 = 123; //定义变量
    cout << "定义变量v1,其值为:" << v1 << "\n";
    cout << "请输入任意值,将该值赋予变量v1\n";
    cin >> v1;
    cout << "此时变量v1,其值为:" << v1 << "\n";
    cout << "此时常量pi,其值为:" << pi << "\n";
    return 0;
}

运算与表达式

算术运算与赋值运算

基本算术运算符

  • 加(+)、减(-)、乘(*)、除(/),若整数相除,结果取整。
  • 取余(%),操作数为整数。

优先级与结合性

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

自增、自减

  • 例:i++;–j

赋值运算

  • 将值赋给变量,通过赋值运算符”=“完成。
  • 例:n = 5
  • 10种复合运算符:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|=、

逗号运算、关系运算、逻辑运算和条件运算

逗号运算和逗号表达式
格式
表达式1、表达式2
求解顺序及结果
先求解表达式1,再求解表达式2
最终结果为表达式2的值

a = 35,a4 最终结果为60

关系运算与关系表达式

  • 关系运算是比较简单的一种逻辑运算,优先次序为:
    < <= > >= 优先级相同(高)
    == != 优先级相同(低)
  • 关系表达式是一种最简单的逻辑表达式
    其结果类型为bool,值只能为true或false
  • 例如: a > b,c <= a+b,x+y == 3

逻辑运算与逻辑表达式

  • 逻辑运算符
    优先次序(由高到低):!(非),&&(与),||(或)
  • 逻辑运算结果类型:bool,值只能为true或false
  • 逻辑表达式:例如:(a>b)&&(x>y)
  • "&&"的运算规则
    两侧表达式都为真,结果为真;有一侧表达式为假,结果为假。
  • "||"的运算规则
    两个表达式都为假,结果为假;有一侧表达式为真,结果为真。

条件运算符与条件表达式

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

sizeof运算、位运算

sizeof运算

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

位运算-按位与(&)

  • 运算规则
    将两个运算量的每一个位进行逻辑与操作

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值