C++学习笔记

    技术2022-07-10  138

    数据类型

    基本数据类型

    C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型。下表列出了七种基本的 C++ 数据类型:

    类型关键字布尔型bool字符型char整型int浮点型float双浮点型double无类型void宽字符型wchar_t

    使用numeric_limits可以查看数据类型的极限值:

    cout << "unsigned int 最大值:" << (numeric_limits<unsigned int>::max)();

    typedef 声明

    您可以使用 typedef 为一个已有的类型取一个新的名字。下面是使用 typedef 定义一个新类型的语法:

    typedef int feet;

    Byte和char

    char是用来表示一个字符,而不是一个字,因为一个字要占用两个字节。而存储一个ANSI字符只需一个字节。注意,强调是ANSI字符,而不是Unicode字符。因为Unicode要占用两个字节。(这个一定要注意看)如,"中文123"(占10字节)。

    byte类型是最自由的一种。它就占用一个字节,但没有定义这个字节拿来干什么。Byte定义为一个Unsigned char类型。也就是无符号的一个字节。它将一个字节的8位全占用了。可以表示的数据范围是0到255之间。

    字符串

    C++ 提供了以下两种类型的字符串表示形式:

    C 风格字符串C++ 引入的 string 类类型

    C 风格字符串

    char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; char greeting[] = "Hello";

    C++ String 类

    string str1 = "Hello";

    更多 String 用法请参考: http://www.purethought.cn/5cf35ca9.html

    指针

    什么是指针? 首先要理解 值(变量,常量,函数等) 是存储在内存中的,指针指向 值 的地址. 那么指针如何正确引用一个值呢,这就需要声明指针的类型,如 int 型指针,这就告诉指针,从指向的内存地址开始读取 int 大小的内存,就正确解析 值 了.

    即,指针代表了变量的首地址,指针类型代表了有效范围.

    #include <iostream> using namespace std; int main () { int var = 20; // 实际变量的声明 int *ip; // 指针变量的声明 ip = &var; // 在指针变量中存储 var 的地址 cout << "Value of var variable: "; cout << var << endl; // 输出在指针变量中存储的地址 cout << "Address stored in ip variable: "; cout << ip << endl; // 访问指针中地址的值 cout << "Value of *ip variable: "; cout << *ip << endl; return 0; } Value of var variable: 20 Address stored in ip variable: 0xbfc601ac Value of *ip variable: 20

    引用

    引用(&)又叫别名,即引用和原变量是同一个值的不同叫法(不同表示方法,类似typedef),当使用引用或原变量名更改值时,相应的原变量名或引用所代表的值也就变更了.

    #include <iostream> using namespace std; int main () { // 声明简单的变量 int i; double d; // 声明引用变量 int& r = i; double& s = d; i = 5; cout << "Value of i : " << i << endl; cout << "Value of i reference : " << r << endl; d = 11.7; cout << "Value of d : " << d << endl; cout << "Value of d reference : " << s << endl; return 0; } Value of i : 5 Value of i reference : 5 Value of d : 11.7 Value of d reference : 11.7

    函数

    函数是一个可传参,可返回值的代码块.

    函数由一个函数签名来表示: 返回值类型, 函数名, 参数类型

    使用函数

    使用函数时,先声明函数,再调用函数.

    #include <iostream> using namespace std; // 函数声明 int max(int num1, int num2); int main () { // 局部变量声明 int a = 100; int b = 200; int ret; // 调用函数来获取最大值 ret = max(a, b); cout << "Max value is : " << ret << endl; return 0; } // 函数返回两个数中较大的那个数 int max(int num1, int num2) { // 局部变量声明 int result; if (num1 > num2) result = num1; else result = num2; return result; }

    主函数

    int main () { ... }

    匿名函数

    匿名函数又叫Lambda 表达式,即无需声明直接调用的一块函数体.

    [](int x, int y) -> int { int z = x + y; return z + x; } [] // 沒有定义任何变量。使用未定义变量会引发错误。 [x, &y] // x以传值方式传入(默认),y以引用方式传入。 [&] // 任何被使用到的外部变量都隐式地以引用方式加以引用。 [=] // 任何被使用到的外部变量都隐式地以传值方式加以引用。 [&, x] // x显式地以传值方式加以引用。其余变量以引用方式加以引用。 [=, &z] // z显式地以引用方式加以引用。其余变量以传值方式加以引用。

    I/O

    基础I/O操作

    std::cout << "test"; int i; std::cin >> i;

    文件I/O

    ifstream类,它是从istream类派生的,用来支持从磁盘文件的输入。 ofstream类,它是从ostream类派生的,用来支持向磁盘文件的输出。 fstream类,它是从iostream类派生的,用来支持对磁盘文件的输入输出。

    更多I/O信息请参考: http://www.purethought.cn/9653474a.html#toc-heading-10

    面向对象编程

    为了更好的实现代码复用,C++支持面向对象的编程模式. 一个对象,也可以叫做自定义类型(区别于内置类型),其核心内容是被封装的字段(数据成员).

    更多 面向对象编程 信息请参考: www.purethought.cn/7447.html

    容器

    容器主要分为顺序容器和映射.

    更多容器信息请参考: http://www.purethought.cn/c1522938.html

    关键字

    关键字关键字关键字关键字asmelsenewthisautoenumoperatorthrowboolexplicitprivatetruebreakexportprotectedtrycaseexternpublictypedefcatchfalseregistertypeidcharfloatreinterpret_casttypenameclassforreturnunionconstfriendshortunsignedconst_castgotosignedusingcontinueifsizeofvirtualdefaultinlinestaticvoiddeleteintstatic_castvolatiledolongstructwchar_tdoublemutableswitchwhiledynamic_castnamespacetemplate

    标准库

    标准库信息请参考: http://www.purethought.cn/56653.html

    多线程

    TODO.

    Processed: 0.015, SQL: 9