以#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++基本语法相关推荐

  1. 【JavaScript总结】JavaScript语法基础:BOM

    DOM是文档对象模型,操作对象是文档 window.document,和浏览器没有直接关系 DOM常用事件: onload,onbeforeunload, onunload onclick,ondbl ...

  2. 【JavaScript总结】JavaScript语法基础:JS编码

    运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...

  3. 【JavaScript总结】JavaScript语法基础:数据类型

    ------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...

  4. 第二天:Vue基础语法

    1.计算属性的setter和getter 每个计算属性都有setter和getter 一般来说用到setter较少,都不希望数据被改动,所以只用getter时也有缩写 <!DOCTYPE htm ...

  5. LLVM语法语义指令特性

    LLVM语法语义指令特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数,全局变 ...

  6. LLVM一些编程语法语义特性

    LLVM一些编程语法语义特性 High Level Structure Module Structure LLVM 程序由Module's组成,每个 's 是输入程序的一个翻译单元.每个模块由函数.全 ...

  7. LLVM一些语法规则

    LLVM一些语法规则 LLVM文档 LLVM编译器基础架构支持广泛的项目,从工业强度编译器到专门的JIT应用程序,再到小型研究项目. 同样,文档分为几个针对不同受众的高级别分组: LLVM设计概述 几 ...

  8. 2021年大数据Hive(四):Hive查询语法

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 hive查询语法 一.SELECT语句 1.语句结构 2.全表查 ...

  9. 2021年大数据常用语言Scala(十八):基础语法学习 Map对象

    目录 Map对象 不可变Map 可变Map Map基本操作 Map对象 Map可以称之为映射.它是由键值对组成的集合.在scala中,Map也分为不可变Map和可变Map. 不可变Map 定义 语法 ...

  10. 2021年大数据常用语言Scala(十七):基础语法学习 Set

    目录 Set 不可变集 可变集 Set Set(集)是代表没有重复元素的集合.Set具备以下性质: 元素不重复 不保证插入顺序 和List正好相反, List: 元素可以重复 保证插入顺序 scala ...

最新文章

  1. HBase Cassandra比较
  2. 要的需求 ip提取网站源码带采集 要求是PHP源码
  3. 为什么有些大公司的效率弱爆了?
  4. 【玩味西班牙】之一:初识餐前小吃——达帕斯(TAPAS)
  5. 11月20日站立会议
  6. ubuntu下MySQL无法启动Couldn't find MySQL server (/usr/bin/mysqld_safe)”
  7. Zabbix中文使用手册
  8. opencv-Haar特征
  9. 【工控老马】PLC六路抢答器系统设计详解
  10. 计算机自带游戏怎么调,电脑游戏声音小怎么调,教您电脑游戏声音小怎么调
  11. 变量巫师_如何在《巫师III:狂猎》中扮演格温特
  12. javamail发送SSL---------Unrecognized SSL message, plaintext connection
  13. 开水果店前期投入,水果店会有哪些费用
  14. Oracle读取数据库中表填充,Oracle数据库中查看所有表和字段以及表注释.字段注释...
  15. Compact 命令压缩和解压缩文件
  16. 【吾爱破解第一期】破解基础知识之认识壳与程序的特征
  17. 红帽8搭建httpd
  18. qq客服不需要加好友的html方法
  19. 25款优秀的WordPress必备插件推荐
  20. 用友Java面试汇总

热门文章

  1. Linux bash基本介绍
  2. ubuntu查看各种版本号
  3. 进阶运维:SSH无缝切换远程加密
  4. python时间处理,datetime中的strftime/strptime
  5. hdu4757(可持久化 Trie )
  6. 第二次项目冲刺(Beta阶段)--第五天
  7. Linux 以form表单形式上传文件
  8. 20个命令行工具监控 Linux 系统性能
  9. 从零开始构建MSBuild C#项目文件
  10. CustomViewWith_Image_Text_Video