热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++PrimerPlus第五版笔记(p150)

1在unix中echo获得状态2iostream包含istream以及ostream:随着时间的推移,字符是按照顺序生成或者是消耗的3cin标准输入cout标准输出C




1 在unix中 echo 获得状态
2iostream 包含istream以及ostream:随着时间的推移,字符是按照顺序生成或者是消耗的
3cin标准输入 cout标准输出 Cerr标准错误 clog 一般性信息
4cin>>c1>>c2;连续输入
5cout是ostream的对象&#xff0c;第一个<<返回左侧cout,接着到第二个cout
6endl的效果是结束当前行&#xff0c;并将于设备关联的缓冲区内容刷到设备中
7std 命名空间
8注释分为 /* */ 以及//
9for while 循环
10读取数量不定的输入数据&#xff1a; while(std::cin>>value) 读取数据直到文件尾部 3 4 5 6 输出18 从键盘输入文件的结束符是crtl&#43;z 然后再enter
11if 语句
12&#61;与&#61;&#61;的混淆
13自己程序的风格很重要&#xff0c; 要坚持自己的风格
14对于包含标准库的文件&#xff0c; 需要使用<>包围文件名
对于不属于标准库的头文件&#xff0c;则是用双引号””包围
15return -1表示失败&#xff0c;返回错误值
16一般多使用double 而不是float
17自动类型转换 p33
给无符号类型一个超出它表示范围的值时&#xff0c;结果是初始值对无符号类型表示数值总数取模后的余数。例如&#xff0c;8比特大小的unsigned char 可以表示0-255区间内的值&#xff0c;但我们付了一个区间以外的值过后&#xff0c;则实际的值是该值对256取模后所得的余数。因此&#xff0c;把-1赋给8比特大小的unsigned char 所得的结果是255

在这里插入图片描述

把负数转换成无符号数类似于直接给无符号数赋一个负值&#xff0c;结果等于这个负数加上无符号数的模
在这里插入图片描述在这里插入图片描述

给有符号类型一个超出它表示范围的值时&#xff0c;结果是未定义的&#xff0c;此时程序可能会工作&#xff0c;可能崩溃&#xff0c;但是也可能产生垃圾数据

18 别混用带符号类型以及无符号类型
19 浮点型字面值表现为一个小数或以科学计数法表示的指数&#xff0c;其中指数部分用E/e标识
3.14159E0
默认的&#xff0c;浮点型字面值是一个double&#xff0c; 可以用其余的后缀来表示其他的浮点型 p37

20 编译器在每个字符串借位添加一个空字符\0, 因此&#xff0c;字符串字面值实际长度要比它的内容多1

21 转义字符 \n换行符 双引号\” 单引号\’
在这里插入图片描述

22 泛化的转义序列 \7,\40,\115 如果斜杠后面八进制数字超过三个&#xff0c;那么只有前3个数 p36
23 指定字面值的类型&#xff1a;在字面值后加上LL&#xff0c;U,u,L表示不同含义 p37
24 对象是指一块能存储数据并拥有某种类型的内存空间

25 绝大多数类都支持无须显式初始化而定义对象
建议初始化每个内置类型的变量

26 extern int i;声明而不定义变量i
27 标识符&#xff1a;字母&#xff0c;数字&#xff0c;下划线&#xff1b;字母或者下划线必须是开头&#xff0c;对大小写字母敏感

28 c&#43;&#43; 关键字 p43
不太熟悉的关键字&#xff1a; alignas alignof asm enm inline mutable register reinterpret_cast static_assert static_cast thread_local throw union wchar_t

29 cout<<::reused< 30 定义引用时&#xff0c;程序会把引用和它的初始值绑定在一起&#xff0c;而不是将初始值拷贝给引用
31 引用必须初始化
32 不能定义引用的引用&#xff0c;不能&&a
33 引用只能绑定在对象上&#xff0c;不能和字面值或者某个表达式的计算结果绑定在一起
34 指针本身就是一个对象&#xff0c;允许对指针赋值以及拷贝&#xff0c;而且在指针的生命周期中它可以指向几个不同的对象。其二&#xff0c;指针无须在定义时赋初值&#xff0c;没有初始化也将拥有一个不确定的值
35 指针的类型实际上用于指定它所指向对象的类型&#xff0c;所以两者必须匹配
36 空指针不指向任何对象&#xff0c;在试图使用一个指针之前可以检查它是否为空 int *p1&#61;nullptr
用字面值 nullptr 来初始化指针是c&#43;&#43;11刚引入的新特性

37 过去的程序会用到一个名为NULL的预处理变量来给指针赋初值&#xff0c;这个变量在头文件cstdlib中定义&#xff0c;它的值是0
#include
int *p3&#61;NULL;
38 预处理器是运行于编译过程之前的一段程序&#xff0c;预处理变量不属于命名空间std&#xff0c;而是由预处理器负责管理
39 在新标准下&#xff0c;尽量使用nullptr而不是NULL
40 建议初始化所有指针&#xff0c;如果实在不知道指向何处&#xff0c;请初始化为nullptr 或者 0
41 赋值永远改变的是等号左侧的对象
42 任何非0指针对应的条件值都是true
43 两个指针存放的地址值相同&#xff08;两个指针相等&#xff09;有三种可能&#xff1a;
都指向同一个对象
都为空
都指向另外对象的下一个地址

44 void可以存放任意对象的地址&#xff0c;不过比较有限&#xff0c;不能直接操作void 指针所指向的对象&#xff0c;因为不确定类型&#xff0c;而且无法访问内存空间所存的对象







推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • ***byte(字节)根据长度转成kb(千字节)和mb(兆字节)**parambytes*return*publicstaticStringbytes2kb(longbytes){ ... [详细]
  • 本文介绍了在Cpp中将字符串形式的数值转换为int或float等数值类型的方法,主要使用了strtol、strtod和strtoul函数。这些函数可以将以null结尾的字符串转换为long int、double或unsigned long类型的数值,且支持任意进制的字符串转换。相比之下,atoi函数只能转换十进制数值且没有错误返回。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
author-avatar
姚允浩_266
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有