C++学习笔记——基本语法
来源:互联网 发布:求推荐淘宝小零食店铺 编辑:程序博客网 时间:2024/06/06 05:32
C++简单程序设计
1. C++语言概述
- C++语言产生与发展:继承和兼容C的语法,增加了类的支持,C++11包含了核心语言的新机能,扩展了C++标准库
- 兼容C,支持面向过程,同时支持面向对象和泛型
//iostream为文本文件,相当于预编译时从该文件复制代码#include <iostream>//声明命名空间,相当于std.coutusing namespace std;int main(){ //cout为输出流类的对象,<<为流插入运算,endl结束流 cout << "Hello!" << endl; cout << "Welcome to C++!" << endl; return 0;}
C++基本字符集和词法记号:
- C++字符集:大小写字母、数字、特殊符号
- 词法记号:关键字(预定义)、标识符(命名)、文字、分隔符((), {}, ;)、运算符,空格(任意空格,tab,Enter)
- 标识符构成规则:以下划线或字母开头,不是关键词
2. C++ 基本数据类型
C++数据类型:整数类,实数类,布尔类、字符类…
- 整数类型:基本整型(
int
),(signed
与unsigned
),(short
,long
与long long
) - 实数类型:
float
,double
,long double
- 字符类型:
char
- 字符串类型:有常量无变量,字符数组存储字符串(C风格),推荐用String类
- 布尔类型:bool
注意C++没有规定int和double的长度,只规定了相对长短关系,系统不同可能不同。
浮点数在计算机中近似存储,所以不能对两个浮点数判等。
3. C++常量与变量
常量:程序运行中值始终不变的量
- 整数常量:十进制(0 ~ 9),八进制(0 ~ 7),十六进制(0 ~ 9A ~ F)
- 实数常量:一般形式、指数形式
- 字符常量:一般字符、特殊字符
- 字符串常量:C风格以\0为结束
- 注意前缀和后缀改变类型
变量:程序运行中值可以变化,使用变量名调用内充空间
- 全局变量:未初始化为默认值
- 局部变量:为初始化可能会是垃圾数据
初始化方法:
int a = 0;int a(0);//列表初始化不能有数据丢失int a = {0};int a{0};
符号常量:const
来修饰,只能用不能修改,定义时赋值
const double pi (3.14159);
例:对变量与常量的测试
#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'; return 0;}
4. C++运算符与表达式
- 基本算术运算符:+,-,*,/,%
- 优先级:先乘除后加减,同级自左向右
- 自增自减:
j++
,--j
- 赋值运算:左边对象被赋值、类型与左边相同
- 复合运算符:+=,-=,*=,/=,<<=,>>=,&=,^=等
- 逗号运算符:先求1再求2,结果为2的值
a = 3 * 5, 5 * 12;
- 关系运算符:大小相等关系,<,<=,>,>=(优先级高),==,!=(优先级低),结果为bool类型
- 逻辑运算符:!,&&,||(优先级由高到低,有短路特性)
- 条件表达式:
表达式1 ? 表达式2 : 表达式3
表达式1为真,结果为表达式2,否则结果为表达式3.
优先级高于赋值运算符低于逻辑运算符
- Sizeof运算:计算某个数据、类型、对象所占的字节数
sizeof(short)sizeof x
- 位运算:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、<<(左移运算,低位补0),>>(右移运算,补0或补符号位)
c = a & 0xfe // 某位置零c = a & 0xff // 取出指定位a = a | 0xff // 低字节置1
类型转换:由低到高
- 隐式转换:注意级别,可能丢失数据
- 显示转换:
static_cast、const_cast、dynamic_cast、reinterpret_cast
类型的级别:
5. 数据的输入和输出
- 输入与输出看做信息的流动,通过输入输出流类来实现。
- 指向屏幕/键盘的标准
I/O
类,预定义的插入和提取预算符。
cout << 表达式 << 表达式...cin >> 表达式 >> 表达式...
常用的操纵符:
6. 执行流程的控制
① 选择结构
- if 语句的语法形式:
if (表达式) 语句 if (表达式) 语句1 else 语句2 if (表达式) 语句1 elseif (表达式2) 语句2... else 语句n
- 上述语句均可为大括号括起来的复合语句
int x, y;cout << "Enter x and y:";cin >> x >> y;if (x != y) if (x > y) cout << "x > y" << endl; else cout << "x < y" << endl;else cout << "x = y" << endl;return 0;
- 嵌套使用时注意匹配关系
- Switch语句:进入某个
case
后不再受Switch语句控制,必须在每个case
中加break
调出Switch语句,否则将执行第一次进入的case
后的所有语句。
② 循环结构
- while 循环:表达式为真时执行循环体
while (表达式) 语句
- do … while 循环:先执行一次再判断,为真时继续
do (语句) while (表达式)
- for 循环:处理循环次数已知的循环,可以代替上述两种循环解决问题
for (初始语句; 表达式1; 表达式2) 语句 for (声明: 表达式) 语句
嵌套循环:循环与循环、循环与选择均可以嵌套
循环控制:
break
与continue
7. 自定义数据类型
- 为已有类型另外命名:
typedef 已有类型名 新类型名表 using 新类型名 = 已有类型名
- 用户自定义类型——枚举
enum 枚举类型名 {变量值列表} //不限定作用域的枚举类型(C)
整数值不能直接赋值给枚举变量,而枚举类型可以给整数变量赋值。
auto :通过初始值自动推断变量的类型
decltype :定义一个变量与某一表达式类型相同
阅读全文
0 0
- 学习笔记1—C语言的基本语法
- C++学习笔记——基本语法
- php学习笔记—-基本语法
- Freemarker学习笔记二—基本语法
- Objective-C学习笔记(二)——OC基本语法概述
- Objective-C学习笔记(二)——OC基本语法概述
- J2SE学习笔记3 — Java基本语法(1)基本语法规则
- JavaScript学习笔记(一)——基本语法
- Python学习笔记——Python中的基本语法2
- Python学习笔记——Python中的基本语法3
- JAVA学习笔记(二)——基本语法
- HTML5学习笔记——基本语法和语义
- JAVA学习笔记Day02——基本语法
- jQuery学习笔记(1)——基本语法
- 尚硅谷java学习笔记——2.基本语法
- PHP学习笔记——PHP的基本语法;
- Mysql学习笔记一——curd基本语法
- JSP学习笔记—JSP的基本语法
- 语音基础知识
- 关于shape
- 关于C#的委托以及Observer的结合
- STM32F103单片机使用PA13,PA14引脚的一些问题
- [工作流与Activiti]
- C++学习笔记——基本语法
- JavaScript实现的可变动态数字键盘控件三种方式
- eclipse中如何向开源中国(码云)上传代码
- zookeeper 的安装
- TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活
- Expected one result (or null) to be returned by selectOne(), but found: 2
- springboot+mockito 异常解决方案
- 牛B的Glide图片加载解析地址
- Java 向Hbase表插入数据报错(org.apache.hadoop.hbase.client.HTablePool$PooledHTable cannot be cast to org.apa)