【C/C++】C++基本语法
以#include指令开头,包含来自标准库的头文件,用<>包围头文件名。对于不属于标准库的头文件,用“ ”包围头文件名。
C++字符集
大小写的英文字母:A~Z,a~z
数字字符:0~9
特殊字符:!@#¥%_&*(){}[]<>?|/\';:?,.~
C++标识符的构成规则
①以大写字母、小写字母或下划线_开始
②可以由以大写字母、小写字母、下划线_或数字0~9组成
③大写字母和小写字母代表不同的标识符
④不能是C++关键字或操作符
读取数量不定的输入数据
while(cin>>value){}
while会一直执行至遇到文件结束符(或输入错误)。
后缀
后缀L表示类型至少是long
后缀LL表示类型是long long
后缀U表示unsigned类型
后缀F表示float类型
符号常量
形式: const 数据类型说明符 常量名=常量值;
符合常量在定义时一定要初始化,在程序中间不能改变其值(只能用,不能修改)
基本算术运算符
1、/(若整数相除,结果取整)
2、%(祛瘀,操作数为整数)
3、++,--(自增、自减):
++i; //先将变量i+1,然后变量继续参与其他的运算;
i++; //先将变量生成副本参与其他的运算,然后再将变量+1;
4、逗号运算和逗号表达式
格式:表达式1,表达式2
求解顺序
先求解表达式1,在求解表达式2
最终结果为表达式2的值
例:a=3*5,a*4 //结果为60
5、关系运算与关系表达式
优先次序:<=、>=、>、<(高) ==、!=(低)
关系表达式其结果类型为bool,值只能为true或false
6、条件运算符与条件表达式
形式:表达式1 ? 表达式2 : 表达式3
表达式1必须为bool类型
执行顺序:求解表达式1,表达式1为真,则求表达式2;表达式为假,则求解表达式3;
条件运算符优先级高于赋值运算符,低于逻辑运算符
sizeof运算,位运算
1、sizeof运算符
形式: sizeof(类型名)或sizeof 表达式
结果值:“类型名”所指定的类型或”表达式“的结果类型所占的字节数
2、位运算
按位与:& //用来将某些位置0
按位或:| //用来将某些位置1
按位异或:^ //对应位相同为0,对应位不同为0. 指定将某些位翻转(0与异或保持原值,与1异或取反)
按位取反:~
移位: 左移运算:<< //左移后,低位补0,高位舍弃
右移运算:>> //低位舍弃,高位:无符号补0,有符号补‘符号位’
隐含转换
基本原则:降低类型数据转换为高类型数据
显示转换
形式: 类型说明符(表达式)
(类型说明符)表达式
类型转换操作符<类型说明符>(表达式)
类型转换操作符:static_cast、const_cast、dynamic_cast、reinterpret_cast
例:int(z),(int)z,static_cast<int>(z)
命名的强制类型转换
形式:cast-name<type>(expression)
cast-name:static_cast、dynamic_cast、const_cast、reinterpret_cast
static_cast:显示地执行某种定义明确的类型转换,任何具有明确定义的类型转换,只要不包含底层const,都可以使用;
const_cast:只能改变运算对象的底层const,只有const_cast能改变表达式的常量属性。
reinterpret_cast:把运算对象的内容解释成另外一种类型。
dynamic_cast:支持运行时类型识别。
指针
指针初始化形式: int *p = &ival; //p时指向变量ival的指针
p = &ival; //p赋值ival地址,指向ival
*p = ival; //pi指向ival
空指针
int *p = nullptr;
空指针用nullptr来初始化指针。
void* 指针
可以用于存放任意对象的地址。
指向指针的引用
int *&r = p; //r是一个对指针p的引用
常量表达式
constexpr是指值不会改变并且在编译过程就能得到计算结果的表达式。
类型别名
类型别名是一个名字,某种类型的同义词。
关键字typedef:
typedef 已有类型名 新类型名表;
typedef double wages; //wages是double的同义词
关键字using:
using 新类型名 = 已有类型名;
using SI = Sales_time; //SI是 Sales_time的同义词
auto:编译器通过初始值自动推断变量的类型。auto类型说明符,能让编译器替我们去分析表达式所属的类型。auto定义的变量必须有初始值。
auto item=val1+val2; //item初始化位val1和val2相加的结果。
auto一般会忽略顶层const。
decltype:定义一个变量与某一表达式的类型相同,但并不用该表达式初始化变量
decltype(i) j = 2; //i为int类型,则j为int类型
switch语句:
switch (表达式)
{ case 常量表达式:语句;break;
default:
语句;break;}
每个case分支最后应该加break语句。case分支可包含多个语句,且不用{ }。
枚举类型:
不限定作用域枚举类型:
枚举元素是常量,不能对它们赋值;
枚举元素具有默认值,可以在声明时另行指定枚举元素的值;
整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。枚举值可以赋给整型变量。
定义方式:将全部可取值一一列举出来。
语法形式:enum 枚举类型名 {变量值列表};
enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT}; //默认SUM=0,MON=1..
基于范围的for循环
语法形式:for(declaration:expression){statement;}
其中:
expression部分表示一个对象,用于表示一个序列。
declaration部分负责定义一个变量,该变量将被用于访问序列中的基础元素。
每次迭代,declaration部分的变量会被初始化为expression部分的下一个元素值。
若迭代器变量的值希望能够在for中被修改,可以采用引用&的方式;
注意:
浮点数在编译器里面赋值时近似相等的,不能比较2个浮点数大小,只能通过作差结果无穷小。
'A'单独的字符A,“A”一个字符的数组,该数组包含:字母A,空字符'\0'
编译器再每个字符串结尾处添加一个空字符'\0'
break语句
使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。
continue 语句
结束本次循环,接着判断是否执行下一次循环。
goto 语句
使程序的执行流程跳转到语句标号所指定的语句。不提倡使用。
变量命名规范:
标识符体现实际含义
变量名一般用小写字母
用户自定义的类名一般以大写字母开头
如果标识符有多个单词组成,则单词间应有明显区分。
预处理变量的名字全部大写。
【C/C++】C++基本语法相关推荐
- 【JavaScript总结】JavaScript语法基础:BOM
DOM是文档对象模型,操作对象是文档 window.document,和浏览器没有直接关系 DOM常用事件: onload,onbeforeunload, onunload onclick,ondbl ...
- 【JavaScript总结】JavaScript语法基础:JS编码
运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...
- 【JavaScript总结】JavaScript语法基础:数据类型
------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...
- 第二天:Vue基础语法
1.计算属性的setter和getter 每个计算属性都有setter和getter 一般来说用到setter较少,都不希望数据被改动,所以只用getter时也有缩写 <!DOCTYPE htm ...
- LLVM语法语义指令特性
LLVM语法语义指令特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数,全局变 ...
- LLVM一些编程语法语义特性
LLVM一些编程语法语义特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数.全 ...
- LLVM一些语法规则
LLVM一些语法规则 LLVM文档 LLVM编译器基础架构支持广泛的项目,从工业强度编译器到专门的JIT应用程序,再到小型研究项目. 同样,文档分为几个针对不同受众的高级别分组: LLVM设计概述 几 ...
- 2021年大数据Hive(四):Hive查询语法
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...
- 2021年大数据常用语言Scala(十八):基础语法学习 Map对象
目录 Map对象 不可变Map 可变Map Map基本操作 Map对象 Map可以称之为映射.它是由键值对组成的集合.在scala中,Map也分为不可变Map和可变Map. 不可变Map 定义 语法 ...
- 2021年大数据常用语言Scala(十七):基础语法学习 Set
目录 Set 不可变集 可变集 Set Set(集)是代表没有重复元素的集合.Set具备以下性质: 元素不重复 不保证插入顺序 和List正好相反, List: 元素可以重复 保证插入顺序 scala ...
最新文章
- HBase Cassandra比较
- 要的需求 ip提取网站源码带采集 要求是PHP源码
- 为什么有些大公司的效率弱爆了?
- 【玩味西班牙】之一:初识餐前小吃——达帕斯(TAPAS)
- 11月20日站立会议
- ubuntu下MySQL无法启动Couldn't find MySQL server (/usr/bin/mysqld_safe)”
- Zabbix中文使用手册
- opencv-Haar特征
- 【工控老马】PLC六路抢答器系统设计详解
- 计算机自带游戏怎么调,电脑游戏声音小怎么调,教您电脑游戏声音小怎么调
- 变量巫师_如何在《巫师III:狂猎》中扮演格温特
- javamail发送SSL---------Unrecognized SSL message, plaintext connection
- 开水果店前期投入,水果店会有哪些费用
- Oracle读取数据库中表填充,Oracle数据库中查看所有表和字段以及表注释.字段注释...
- Compact 命令压缩和解压缩文件
- 【吾爱破解第一期】破解基础知识之认识壳与程序的特征
- 红帽8搭建httpd
- qq客服不需要加好友的html方法
- 25款优秀的WordPress必备插件推荐
- 用友Java面试汇总