Hello world

c++的第一个程序

#include<iostream>
using namespace std;
void main(void) {
	cout << "Hello world!";
}

变量

变量提供一个具名的、可供程序操作的存储空间。

对象:对象是指一块能储存数据并具有某种类型的内存空间。

初始化

当对象在创建时获得了一个特定的值,我们就说这个对象被初始化了。

int units_sold = 0;
int units_sold = { 0 };
int units_sold{ 0 };
int units_sold(0);

花括号的初始化方法被称为列表初始化

默认初始化:如果我们没有指定初始值,则变量会被默认初始化。

建议初始化每一个内置类型的变量

变量的声明和定义

C++语言支持分离式编译。

为了支持分离式编译,C++语言将声明和定义区分开来。

声明:一个文件想要使用别处定义的名字必须包含对那个名字的声明。

定义:定义负责创建与名字关联的实体。

声明不能初始化变量。

变量只能被定义一次,但是可以被声明多次。

extern int i;//这是声明

变量名命名规范

3

4

变量名的作用域

变量名的作用域以花括号为界。和C语言类似

建议:当你第一次使用变量的时候定义他。

基本类型

基本内置类型

算术类型:算术类型是最基本的类型,是用来存储一个数字,或一个字符的类型,

1

字面值常量

在程序中,42,就是一个字面值常量,“”,其中的内容也是字面值常量。

默认的整数为int型(超出int存储范围的可能为long型或long long型)。

用单引号的单个字符默认为char型,双引号的字符默认为字符串数组型。

浮点数默认为double型。

用前缀和后缀可以定义字面值常量的类型,具体用法如下。

2

复合类型

引用:引用为对象起了另外一个名字,引用类型引用另外一种类型。

引用在定义时就要初始化,引用和被引用的变量指向同一个内存空间。

int &refVal=ival;//这是引用
int*&r=p;//r是一个对指针p的引用

const 限定符

对于变量来讲,加上const就变成了一个常量,不能同过赋值运算符改变const定义的变量。

对于指针来讲,const分为顶层指针和底层指针

int i=1;
int j=2;
const int *p1;//这个是底层指针
p1=&i;//不能通过p1修改i的值,但可以让p1指向&j
int *const p2=&i;//这个是顶层指针,不能改变p2指向的对象,一开始定义就要初始化

constexpr:这个变量所声明的值必须是常量表达式。

constexpr int*p1;//这类似于顶层指针,不能改变p1指向的对象,定义时要初始化

处理类型

auto和decltype是两个重要的处理类型,auto可以自动判断所设变量的类型,decltype可以自动判断函数的返回值类型。

命名空间using声明

每一个库函数都有一个命名空间,通过using可以省略“std::”的使用。

标准库string

定义在string头文件中

使用string类型必须添加头文件

#include<string>

5

s.size(): s.seze()的返回值是一个无符号数,如果和有符号的负数比较,结果一定是true。

C++支持字符串相加,但不能将字面量与字面量相加。

string处理字符的库:cctype头文件

6

vector类型

定义在vector头文件中

暂不理解,以后再写。

迭代器

7

数组

数组与vector相似,都是存放类型相同的对象的容器,但数组大小确定不变,不能随意增加元素。

cstddef头文件:size_t(无穷大的int型),ptrdiff_t(两个指针相减的类型)

iterator头文件:begin,end函数

cstring头文件:

8

❤️ 转载文章请注明出处,谢谢!❤️