首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【笔记】《C++Primer》—— 第一部分:C++基础

还会将缓冲区中的所有数据刷到设备中,可以保证当前的输出不会只停留在内存缓冲区中 在Windows中,文件结束符通过在cmd界面按Ctrl+Z和回车键触发,在UNIX系统(包括MacOS)中,使用Ctrl+D触发 C语言的头文件在...位 char16_t 和char32_t :负责处理Unicode的字符类型 当明确知道数值是正的时,选符号型 整数一般使用int,否则使用longlong 浮点类型最荐使用double 浮点转整数会舍去小数部分...引用即别名,必须被初始化,只能绑定在有确认内存地址的目标上 在很多情况下(几乎所有情况下),使用nullptr来代替NULL都是更好的选择 void*是一种特殊的指针,可以存放任意类型的对象的地址,称为类型指针...() 千万不要在使用迭代器的时候改变容器的结构(增减元素),这会使迭代器失效 迭代器做差得到的返回值是迭代器的距离,类型difference_type,是个有符号数 数组的索引类型是size_t,也是符号数...static_cast是最常用最基础的转换,我们平时使用的强制类型转换都可以改成这个。

1.4K40

C语言自学(一)C语言基础

由于工作需要用到C语言,所以开始接触学习C语言,从最基础开始学习了解。...C语言中的关键字: auto 声明自动变量 break 跳出当前循环 case 开关语句分支 char 声明字符型变量或函数返回值类型 const 声明只读变量 continue...计算数据类型或变量长度(即所占子结束) static 声明静态变量 struct 声明结构体类型 switch 用于开关语句 typedef 用于给数据类型取别名 unsigned 声明符号类型变量或函数...union 声明共用体类型 void 声明函数返回值或参数,声明类型指针 volatile 说明变量在程序执行中可被隐含地改变 while 循环语句的循环条件 C数据类型 1、基本类型...回车 C存储类 auto register static extern C运算符 算术运算符 + - * / % ++ – 关系运算符 == !

22.3K21

【笔记】《C++Primer》—— 第3章

C++风格的头文件是没有.h的,有些C的头文件被移植到了C++中(指代码风格,内容没有改变),也会失去其.h并在文件名前加上c以示区别。...其中需要注意size返回的其实是size_type格式的,是一个机器无关的足以放下任何string的符号整形数,所以不要轻易使用int来替代。...这里可以看到我遍历字符串使用的是一种比较特殊的for,这是C11增加的range-for,括号中冒号前的是从后面的序列中得到的一个对象,这种写法在很多现代语言中都被支持了。...string一样可以使用下标运算符来索引内容,接收的参数其实也是size_type,所以最好使用符号数来索引。...3.5 最后还是要说到最原始的数组和指针,其实没什么好讲的,突出一点就是C++有封装好的类可以用,所以不是很必要了。 数组的索引类型是size_t,也是符号数。

91920

【笔记】《C++Primer》—— 第1章

最近用到C++的时候意识到自己很多知识都掌握的不牢固,C11的特性也基本都不了解,心想这样不行就决定来看这本厚厚的书了。...1.1 main函数是C++程序与操作系统交流的接口,操作系统通过调用main函数来执行C++程序。...由上一点,当在例如linux的命令行中使用&符连续运行多个程序时,只要前面的程序返回值非0就会停止指令的执行 在平时命令行中想要知道返回值可以使用echo命令 C++的文件后缀名与编译器的约定有关,最常见的后缀名是....cpp,但是在linux/unix下.cc和.C也是一种常用后缀名,.C是最原始的C++文件后缀名。...这些名称实际上都是为了和C语言的后缀名做出区分。

50730

C++Primer》第十九章

链接指示: extern "C" C++程序有时候需要调用其他语言编写的函数(比如C语言)。其他语言中的函数名字也必须在C++中进行声明,并且该声明必须指定返回类型和形参类别。...// 复合语句链接指示 extern "C" { #include // 操作C风格字符串的C函数 } 上面的写法意味着头文件中所有普通函数声明都被认为是由链接指示的语言编写的...3.4 链接指示对整个声明都有效 // f1是一个C函数, 它的形参是一个指向C函数的指针 extern "C" void f1(void(*)(int)); 3.5 导出C++函数到其他语言 通过链接指针对函数进行定义...,我们可以令一个C++函数在其他语言编写的程序中可用: // calc函数可以被C程序调用 extern "C" double calc(double dparm) { /*...*/) } 3.6 重载函数与链接指示...C语言不支持函数重载,因为也就不难理解一个C链接指示只能用于说明一组重载函数中的某一个了: // 错误: 两个extern "C"函数的名字相同 extern "C" void print(const

1.3K10

C++primer笔记之顺序容器

最近又重新拾起C++primer,发现每一次看都会有不同的体验,但每一次看后因为不常用,忘记得很快,所以记笔记是很关键的一环,咋一看是浪费时间,实际上是节省了很多时间。...一般以如下形式(C++)可以避免悬垂指针: delete cp; cp = NULL; //此处一定要记得! 野指针:其产生是由于某些指针在首次使用之前没有进行必要的初始化,这类指针就称为野指针。...5、push_front()和pop_front()只适用于list和deque容器     v[n]和c.at[n]只适用于vector和deque容器 6、不要存储end操作返回的迭代器,添加或删除...8、默认基础容器类型 默认的stack和queue都基于deque容器实现,而priority_queue则在vector容器上实现。

52790

【笔记】《C++Primer》—— 第4章

第四章的标题是表达式,主要讲的内容是平时在用的表达式中的运算符和类型转换等概念,内容不复杂但是却很基础很有用,很多平时习以为常的写法在这章才被系统解释了一次。不过这篇概念比较多代码倒是没怎么写进来。...之所以提到这几个概念是因为之前没把decltype搞得很清楚(其实现在也还是有点懵,如果有错麻烦指出): 首先decltype的括号里面分两种大情况——子括号和有子括号的情况: · 对于子括号的情况...移位操作如何处理符号位是未定义的,所以强烈建议只对符号类型进行位运算。...如果另一个符号类型不小于有符号类型,那有符号类型会转换为符号的 如果无符号类型的所有值都能存入有符号类型中,此时的转换结果是依赖机器的,符号类型会转换为有符号。...static_cast是最常用最基础的转换,我们平时使用的强制类型转换都可以改成这个。它还可以将编译器无法自动执行的类型进行转换,例如将void*转为其他的指针类型。

60340

【笔记】《C++Primer》—— 第2章

unsigned就可以得到符号类型,其中unsigned int可以缩写为unsigned。...unsigned和signed的区别,但是char和signed char是不同的,char具体会表现成unsigned还是signed是要看编译器的 一点选择类型的小技巧: 当明确知道数值是正的时,选符号型...除非对内存有很大要求XD 非bool类型的数转换时,0变为false,其余是true 浮点转整数会舍去小数部分 当给符号数赋值超过其表达范围的值时,得到的结果会是那个数的取模 当给有符号数赋值超过其表达范围的值时...,结果会是未定义的(undefined),非常危险 杂糅起来运算时,有符号数自动转为符号数,负数会被取模 字面值常量默认是变为能容纳下的int以上的最小类型。...也至少把指针初始化为NULL或nullptr 任何非0的指针对应的条件值都是true,nullptr是被作为0处理的,这点与NULL一致 void*是一种特殊的指针,可以存放任意类型的对象的地址,称为类型指针

51420
领券