
《C++ Primer Plus》学习笔记
驯鹿人
天道酬勤
展开
-
《C++ Primer Plus》学习笔记——C++中关键词const的用法和作用
C++中关键词const的用法和作用 1、声明常量,可以采用const声明常量。 格式为: const VarType VarName=value; 如:const int a=10;//const声明的为常量,在成熟中不可更改,即 a=20这样的赋值操作不被允许。 2、const也可以用来修饰函数的形参。被修饰的参数在函数中只允许读,不可修改。 格式为: Int a=10; void show1(const int a) { a=20;//操作不被允许 cout<<a; } 同样的,也可以用来原创 2020-07-01 12:57:31 · 234 阅读 · 0 评论 -
《C++ Primer Plus》学习笔记——文本I/O和文本文件(cin读取原理)
文本I/O和文本文件(cin读取原理) 使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码(例如ASCII编码)。不管目标数据类型是什么,输入一开始都是字符数据——文本数据。然后,cin会负责将文本转换成其他类型。 假设有如下输入行:(看一看使用不同数据类型的变量来存储时,cin是如何处理输入行的。) 38.5 19.2 ①char数据类型 char ch; cin>>ch; 输入行中的第一个字符被赋给ch。在这里,第一个字符是数字3,其字符编码(二进制)被存储在原创 2020-05-29 12:10:10 · 397 阅读 · 0 评论 -
《C++ Primer Plus》学习笔记——带你了解字符函数库cctype
字符函数库cctype C++从C语言继承了一个与字符相关的、非常方便的函数软件包,它可以简化诸如确定字符是否为大写字母、数字、标点符号等工作,这些函数的原型是在头文件cctype(老式风格中为ctype.h)中定义的。使用这些函数判断比使用逻辑运算符AND和OR方便,并且更通用。因为这些函数能适应各种字符的编码。 下面是cctype软件包中的函数。 char a=67; isalum(a)//如果参数是字母数字,即字母或数字,该函数放回true isalpha(a)//如果参数是字母,放回true isc原创 2020-05-29 07:19:14 · 216 阅读 · 0 评论 -
《C++ Primer Plus》学习笔记——类型别名typedef
类型别名typedef C++在为类型建立别名的方式有两种。 使用预处理器 #define A char 这样,预处理器将在编译程序时用char替换所有的A,从而使A称为char的别名。 使用关键字typedef typedef char B;//通用格式:typedef typeName aliasName; 例如,要让B_pointer成为char指针的别名, typedef char *B_pointer; 需要注意的是: 我也可以用 #define A_pointer char * 但两种方式是有原创 2020-05-28 10:28:08 · 391 阅读 · 0 评论 -
《C++ Primer Plus》学习笔记——自动存储、静态存储和动态存储
自动存储、静态存储和动态存储 根据用于分配内存的方法,C++有3种管理数据内存的方式:自动存储、静态存储和动态存储(有时也叫作自由存储空间或堆)。在存在时间的长短方面,以这3种方式分配的数据对象各不相同。(C++11新增了第四种类型——线程存储,这里不做讨论。) 自动存储 在函数内部定义的常规变量使用自动存储空间,被称为自动变量,这意味着它们所属的函数被调用时自动产生,在该函数结束时消亡。**实际上,自动变量是一个局部变量,其作用域为包含它的代码块。**代码块是被包含在花括号中的一段代码。如果在某个代码块原创 2020-05-28 07:33:43 · 206 阅读 · 0 评论 -
《C++ Primer Plus》学习笔记——使用new来创建动态数组
使用new来创建动态数组 在C++的使用过程中,我们可以通过创建数组的方式来管理同一类型的数据。声明一个数组的方式就必须知道数组的长度,如果我们并不知道数组的具体长度,我们就需要将数组的长度设置得足够大这必然会造成内存的浪费。因此,我们可以采用指针来创建动态数组。 在编译时给数组分配内存被称为静态联编(static binding),意味着数组实在编译时加入到程序中的。但使用new时,如果在运行阶段需要数组,则创建它;如果不需要,则不创建。还可以在程序运行时选择数组的长度。这被称为动态联编(dynamic原创 2020-05-26 21:18:40 · 354 阅读 · 0 评论 -
《C++ Primer Plus》学习笔记——共用体union
共用体 共用体(union)是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。也就是说,结构体可以同时存储int、long和double,共用体只能存储int、long或double。共用体的句法与结构体相似,但含义不同。**共用体三字的共用重点在共用内存。**例如,请看下面的声明: union one4all { int int_val; long long_val; double double_val; } 可以使用one4all变量来存储int、long或double,条原创 2020-05-26 17:31:06 · 218 阅读 · 0 评论 -
《C++ Primer Plus》学习笔记——函数getline()和函数get()
在学习C++的时候,如果只是输入一个字符: char str; cin>>str; 如果要输入一个字符串: const int Size=10; char str[Size]; cin>>str; 上面这种方式会在我们需要输入这样的字符串(“I am from China!”)时遇到问题。因为cin使用空白(空格、制表符、换行)来确定字符串的结束位置。所以如果要读入这样包含空格的字符串就需要使用到getline()函数或get()函数。 那么这两个函数有什么区别呢? getlin原创 2020-05-26 16:16:22 · 289 阅读 · 0 评论 -
《C++ Primer Plus》学习笔记——char类型
char类型:字符型、小整型 在我们学习C++的时候通常被强调char是字符型,存储容量为一个字节(8位)。在定义char类型的变量后,为其赋值采用的是单引号括起来的的一个字符。比如: char c='A'; cou<<c<<endl; 那么上面定义的char类型c所标记的1个字节的内存中存储的到底是什么呢?我们知道计算机存储数据的方式都是以二进制的方式存储的。所以,c所存储的值实际上是字符’A’的ASCII码67的二进制值。我们同样可以采用以下方式给c赋值: char c=67;原创 2020-05-25 19:03:28 · 210 阅读 · 0 评论