C++语法学习
将通过一些简单demo来学习 C++的基本语法基础,博主是有一定C的基础的,所以在默写太基础的释义上将不会做过多的解释,顺序在某些情况而言可能是比较乱的,没有一个合理的规整,学到啥,看到啥,就记录啥。
什么是C++
C++就是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。这东西讲了好像也并不能给代码有啥帮助,认识认识就好了
- 百度百科——C++
- 菜鸟教程——C++
- C语言中文网——C++
- 百度贴吧——C++
- …
- 没了简要介绍一段程序
 using namespace std;
 // main() 是程序开始执行的地方
 int main()
 {
 cout << "Hello World"<<endl; // 输出 Hello World
 return 0;
 }你可以用 “\n” 代替以上代码里的 endl。 cout << "Hello World\n"; // 输出 Hello World 引用#include<iostream>这是啥iostream是C++标准库的头定义, 对应的基本上是C++的输入输出相关库定义
 就好比stdio是C标准库里面的函数库 对应的基本都是标准输入输出等等C语言常用库的定义还有啥
- #include<iomanip>控制精度
- #include<cmath>数学函数
- #include<string>字符串
- #include<algorithm>STL通用算法
- …
- 又没了
- C++ 标准库头文件命名空间using namespace std;告诉编译器使用std命名空间。命名空间是 C++ 中一个相对新的概念
| using namespace std; //如果不加这句,cin就得写成std::cin | 
C++ 关键字
下表列出了 C++ 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。
| asm          | else      | new              | this     |
| —————— | ————- | ———————— | ———— |
| auto         | enum      | operator         | throw    |
| bool         | explicit  | private          | true     |
| break        | export    | protected        | try      |
| case         | extern    | public           | typedef  |
| catch        | false     | register         | typeid   |
| char         | float     | reinterpret_cast | typename |
| class        | for       | return           | union    |
| const        | friend    | short            | unsigned |
| const_cast   | goto      | signed           | using    |
| continue     | if        | sizeof           | virtual  |
| default      | inline    | static           | void     |
| delete       | int       | static_cast      | volatile |
| do           | long      | struct           | wchar_t  |
| double       | mutable   | switch           | while    |
| dynamic_cast | namespace | template         |          |
完整关键字介绍可查阅:C++ 的关键字(保留字)完整介绍
输入输出
输入int a,b,c;
cin >> a >> b >> c;	//分别给a,b,c三个变量赋值
数组同样可以采用这种方式输入,也可以同时输入几个数据类型不相同的数据
| int name[20]; | 
输出int a,b,c;
cout << a << b << c <<endl;//打印输入a,b,c
cout <<"a="<< a <<endl;//字符拼接
示例
给定你一个销售人员的名字,底薪以及月销售额。
请你计算他的月收入是多少。
已知月收入等于底薪加15%的月销售额。
所有数据保留两位小数。
输入格式
输入第一行包含一个由大写字母构成的长度不超过10的字符串,表示销售人员的名字。
第二行包含一个浮点数,表示该人员的底薪。
第三行包含一个浮点数,表示该人员的月销售额。
输出格式
输出格式为“TOTAL = R$ X”,X为该人员月收入。
| 
 | 
数据类型
基本数据类型
| 类型 | 关键字 | 
|---|---|
| 布尔型 | bool | 
| 字符型 | char | 
| 整型 | int | 
| 浮点型 | float | 
| 双浮点型 | double | 
| 无类型 | void | 
| 宽字符型 | wchar_t | 
搞不懂宽字符有啥用,不去钻了
| 类型 | 位 | 范围 | 
|---|---|---|
| char | 1 个字节 | -128 到 127 或者 0 到 255 | 
| unsigned | char | 1 个字节 0 到 255 | 
| signed | char | 1 个字节 -128 到 127 | 
| int | 4 个字节 | -2147483648 到 2147483647 | 
| unsigned int | 4 个字节 | 0 到 4294967295 | 
| signed int | 4 个字节 | -2147483648 到 2147483647 | 
| short int | 2 个字节 | -32768 到 32767 | 
| unsigned short int | 2 个字节 | 0 到 65,535 | 
| signed short int | 2 个字节 | -32768 到 32767 | 
| long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 
| signed long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 
| unsigned long int | 8 个字节 | 0 到 18,446,744,073,709,551,615 | 
| float | 4 个字节 | 精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字) | 
| double | 8 个字节 | 双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字) | 
| long double | 16 个字节 | 长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。 | 
| wchar_t | 2 或 4 个字节 | 1 个宽字符 | 
注:变量的大小会根据编译器和所使用的电脑而有所不同。
| 
 | 
运行结果:type:           ************size**************
bool:           所占字节数:1   最大值:1               最小值:0
char:           所占字节数:1   最大值:               最小值:€
signed char:    所占字节数:1   最大值:               最小值:€
unsigned char:  所占字节数:1   最大值:              最小值:
wchar_t:        所占字节数:2   最大值:65535           最小值:0
short:          所占字节数:2   最大值:32767           最小值:-32768
int:            所占字节数:4   最大值:2147483647      最小值:-2147483648
unsigned:       所占字节数:4   最大值:4294967295      最小值:0
long:           所占字节数:4   最大值:2147483647      最小值:-2147483648
unsigned long:  所占字节数:4   最大值:4294967295      最小值:0
double:         所占字节数:8   最大值:1.79769e+308    最小值:2.22507e-308
long double:    所占字节数:12  最大值:1.18973e+4932   最小值:3.3621e-4932
float:          所占字节数:4   最大值:3.40282e+038    最小值:1.17549e-038
size_t:         所占字节数:4   最大值:4294967295      最小值:0
string:         所占字节数:4
type:           ************size**************
--------------------------------
Process exited with return value 0
Press any key to continue . . .
注意数据精度的控制与整型长度的控制,选用不同的数据类型,避免数据错误或数据溢出
typedef 声明
可以使用 typedef 为一个已有的类型取一个新的名字。下面是使用 typedef 定义一个新类型的语法:
例如,下面的语句会告诉编译器,tyInt是 int 的另一个名称:
| typedef int feet; | 
现在,下面的声明是完全合法的,它创建了一个整型变量 distance:
| feet distance; | 
枚举类型
如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。
所谓”枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
创建枚举,需要使用关键字 **enum**。枚举类型的一般形式为:
| enum 枚举名{ | 
如果枚举没有初始化, 即省掉”=整型常数”时, 则从第一个标识符开始。
c = blue;默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。
但是,也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。
在这里,blue 的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1,但 red 的值依然为 0。
常量
常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。
常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。
常量就像是常规的变量,只不过常量的值在定义后不能进行修改。
整数常量
整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:
- 0x 或 0X 表示十六进制
- 0 表示八进制
- 不带前缀则默认表示十进制。
整数常量也可以带一个后缀,后缀是
U和L的组合
- U 表示无符号整数(unsigned)
- L 表示长整数(long)。
后缀可以是大写,也可以是小写,U 和 L 的顺序任意。下面列举几个整数常量的实例:
215u // 合法的
0xFeeL // 合法的
078 // 非法的:8 不是八进制的数字
032UU // 非法的:不能重复后缀以下是各种类型的整数常量的实例:
0213 // 八进制
0x4b // 十六进制
30 // 整数
30u // 无符号整数
30l // 长整数
30ul // 无符号长整数
浮点常量
当使用小数形式表示时,必须包含整数部分、小数部分,或同时包含两者。
当使用指数形式表示时, 必须包含小数点、指数,或同时包含两者。带
符号的指数是用
e或E引入的。
314159E-5L // 合法的
510E // 非法的:不完整的指数
210f // 非法的:没有小数或指数
.e55 // 非法的:缺少整数或分数
布尔常量
布尔常量共有两个,它们都是标准的 C++ 关键字:
- true 值代表真。
- false 值代表假。
我们不应把 true 的值看成 1,把 false 的值看成 0。
定义常量
在 C++ 中,有两种简单的定义常量的方式:
- 使用 #define 预处理器。
- 使用 const 关键字。
#define
| 
 | 
const
| 
 | 
const 前缀声明常量需要指定类型,而#define不需要。
因此
const会进行类型检查,而#define不会





