C++基础总结
1.读取数量不定的输入数据
while ( cin >> value)
sum += value;
当遇到文件结束符,或者遇到一个无效输入时,istream对象的状态会变为无效。
Windows系统的文件结束符:Ctrl+Z,然后Enter;UNIX:Ctrl+D。
2.IO设施通常将输入(或输出)数据保存在一个缓冲区中。
3.Char* Char[]
char* s1 = "hello"; 指针指向的内存区域大小可随时改变
char s2[] = "world";数组对应的内存区域的地址和容量不会改变,数组内容可变
s1 = s2;正确
s2 = s1;错误
4.初始化不是赋值,初始化的含义是创建变量时赋予一个初始值,而赋值的含义是把当前值擦除,而以一个新值来替代。
5.分离式编译
声明规定了变量的类型和名字;定义还申请存储空间,也可能会为变量赋一个初始值。
变量的定义必须出现在且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明,却绝对不能重复定义。
6.C++对大小写字母敏感
7.复合类型
声明语句由一个基本数据类型和紧跟其后的一个声明符列表组成。
引用必须初始化,因为无法令引用重新绑定到另一个对象。
引用的类型都要和与之绑定的对象严格匹配。
指针:指针类型 指针指向的类型 指针的值(指针指向的内存区) 指针本身占据的内存区
指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象。指针无须在定义时赋初值。和其他内置类型一样,在块作用域内定义的指针如果没有被初始化,也将拥有一个不确定的值。
void*是一种特殊的指针类型,可用于存放任意对象的地址。
8.const限定符
const修饰的变量的值不能被改变,const对象必须初始化。
const对象被设定为仅在文件内有效。加上extern关键字后可以只在一个文件中定义const,而在其他多个文件中声明并使用它。
对常量的引用:不能用作修改它所绑定的对象。
指向常量的指针不能用于改变其所指对象的值,要想存放常量对象的地址,只能使用指向常量的地址:
const double pi = 3.14;
double *ptr = π错误
const double *cptr = π正确
*cptr = 42;错误
常量引用和指向常量的指针所指的对象不需要一定是常量。
常量指针:必须初始化,而且一旦初始化完成,则它的值(存放在指针中的那个地址)就不能再改变了
int erxn = 0;
int *const currern = &erxn;
顶层const可以表示任意的对象是常量,底层const则与指针和引用等复合类型的基本类型部分有关
int i = 0;
int *const pl = &i;不能改变pl的值,顶层const
const int ci =42;不能改变ci的值,顶层const
const int *p2 = &ci;允许改变p2的值,这是一个底层const
9.类型别名typedef
别名声明 using SI = Sales_item;
10.auto让编辑通过初始值来推算变量的类型
auto一般会忽略掉顶层const
11.字符串字面值的类型实际上是有常量字符构成的数组,编译器在每个字符串的结尾处添加一个空字符(‘\0‘),如果两个字符字面值位置紧邻且仅由空格、缩进和换行符分隔,则它们实际上是一个整体。
12.string
使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,不使用则是直接初始化。
getline读取一整行 getline(cin, line)
范围for语句:遍历给定序列中的每个元素并对序列中的每个值执行某种操作
for (delaration : expression)
statement
&&:C++规定只有当左侧运算对象为真是才会检查右侧运算对象的情况
13.vector
不存在包含引用的vector
创建指定数量的元素 vector<string> sver(10,"hi!") 10个string类型的元素,每个都被初始化为"hi!"
push_back负责把一个值当成vector对象的尾元素"压到"vector对象的"尾端"
14.迭代器
for (auto it = s.begin(); it != s.end() && !isspace(*it); ++it)
*it = toupper(*it)
const_iterator,能读取但不能修改它所指的元素值
15.sizeof运算符
返回一条表达式或一个类型名字所占的字节数
16.构造函数
没有返回值,不能被声明成const
在类外部定义构造函数:Sales::Sales的含义是定义Sales类的成员
struct关键字:定义在第一个访问说明符之前的成员是public的;class关键字:这些成员是private
17.shared_ptr类
shared_ptr允许多个指针指向同一个对象,unique_ptr则独占所指向的对象
创建智能指针时,必须提供指针可以指向的类型 shared_ptr<string> p1;
make_shared函数在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr
make_shared<ZuVoLog>("demo")
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。