基本语法
我是学过很多语言 对c++也是复习 后面的一些东西写的很简单
c++语言特点
- 兼容c语言
- 保持了c的简介高效 接近底层汇编语言等特点
- 对c的类型系统进行改革和扩充
- 支持面向对象 也支持面向过程 - 支持面向对象的方法
- 支持泛型程序设计方法 (模板)
I/O流
流在使用前要被建立,使用后要被删除
从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作
数据的输入与输出是通过I/O流来实现的,cin和cout是预定义的流类对象。
cin用来处理标准输入,即键盘输入。
cout用来处理标准输出,即屏幕输出。
预定义的插入符和提取符
<<
>>
字符集
- 关键字 预定义的单词
- 标识符 人为定义的
- 文字
- 操作符 运算符号
- 分隔符
- 空白符 空白 tab 垂直制表符等等
关键字
C++语法中预先规定的词汇
标识符
程序员定义的单词,
- 必须大小写字母或者**_**开头
- 可由大小写字母 下划线_ 数字组成
- 大小写敏感
- 不能是关键字 操作符
操作符(运算符)
用于实现各种运算的符号。c++提供一些操作符替换 + - * /等
and andeq bitand
bitor compl not
not_eq or or_eq
xor xor_eq
分隔符
用于分割各个词法记号或程序正文。分隔符不表示任何的实际操作,仅用于构建程序
() {} , ; :
空白
空白是空格、制表符(tab)、垂直制表符、换行符、回车符、注释的总称
注释:
//
/**/
基本数据类型和表达式
- 整数
- 浮点数
- 字符
- 布尔
基本数据类型
首先需要知道的是,C++并没明确规定每种数据类型的字节数和取值范围,而是规定字节数大小关系:signed car<=short int<=int<=long int<=long long int
如果对一个整数没有特殊要求,使用unsigned为宜,它通常具有最高的处理效率
char与int short long有所不同。C++标准并没规定它默认情况下是有符号还是无符号的,也就是说char unsigned char 和signed char 三者不同
整型
int 4B
short 2B long(32位4B,64位8B) long long 8B
char 1B
浮点数
进行除法时,
- 如果是整数且除数为0,程序会异常退出
- 如果是浮点数且除数为0,会得到inf (无穷大)
因为计算机对浮点数存储,计算机中没有绝对的0,只有无限接近0
float 4B
double 8B
long double
字符 字符串
布尔
bool true 或者 false
不可显示字符
类型别名
1、typedef 已有类型名 新类型名
2、using 新类型名=已有类型名
auto和decltype
auto让编译器通过初始值自动推断变量的类型
auto var=var1+var2;
定义一个变量与某一表达式的类型相同,但并不想用该表达式初始化这个变量,这时我们需要decltype变量
//表示j以 2 作为初始值,类型与i 一致
decltype(i)j = 2;
常量
变量
整型常量
十进制:若干个0-9 不能以0开头
八进制:0开头,后续若干个0-9
十六进制 :0x开头,后续若干个0-9和A-F
整型常量可以用后缀指定它是否带符号以及占用多少空间
- 后缀为L表明类型为long
- 后缀为LL表明类型为long long
实型常量
一般两种表现形式:一般形式和指数形式
一般形式:12.5 -12.5
指数形式:0.345E+2表示0.345×10^2 E可以大写也可以小写。指数形式表示一个实数时,整数部分和小数部分可以省略其一,但不能都省略。如:.345E+2、1.E+5
实型常量默认为double,后缀是F(f)可以使其为float
const
常量表达式:值不能改变的表达式,
const int size = 100; //是
const int limit = size+1; //是
int s_size=100; //不是 s_size 可改变
const int size=get_size();//不是
具体不同编译器不同
运算
+ - * / // /为取整
% //取余,操作时为整数
++ -- //自增 自减
= //赋值,右边的值给左边
表达式1,表达式2 //逗号表达式
先计算表达式1,再求解表达式2 最终结果为表达式2的值
eg
a=3*5,a*4; //结果为60 a=15 => a=15*4=60
//关系表达式
> < >= <= == != 优先级后两者低
// 逻辑表达式
! && || 非最高
c++中逻辑表达式具有短路特性
表达式1 && 表达式2
先求解 表达式1
若 表达式为false 则不计算表达式2 直接返回false
若 表达式为true 则计算表达式2 以表达式2为最后结果
表达式1 || 表达式2
先求解 表达式1
若 表达式为true 则不计算表达式2 直接返回true
若 表达式为false 则计算表达式2 以表达式2为最后结果
条件运算表达式
x=a>b?a:b;
位运算
& | ^ ~ >> <<
与 或 异或 取反 右移 左移
类型转换
显示类型转换
I/O流类库操作符
控制流程语句
if
else if
else
switch
case
break
default
continue
循环语句
while 判断条件符合执行
do...while 先执行一次 然后判断条件符合执行
for(初始化;条件;操作)
利用while 输入一个整数,将各位数字反转后输出
//实际上用do...while方便
int num{ 0 };
cout << "请输入整数:";
cin >> num;
cout << "反转后的数字是:";
if (!num)
cout << 0;
else{
while (num) {
int n = num % 10;
cout << n;
num /= 10;
}
}