《C++ Primer》1第一部分学习笔记汇总_基本语言(01至08章)

合集下载

大一c语言章节知识点

大一c语言章节知识点

大一c语言章节知识点第一章:基本概念和数据类型C语言的历史背景C语言的特点和优势关键字和标识符数据类型及其表示范围变量的定义和声明常量的定义和分类运算符的分类和优先级第二章:运算符和表达式算术运算符和表达式逻辑运算符和表达式位运算符和表达式赋值运算符和表达式关系运算符和表达式条件运算符和表达式运算符的优先级和结合性第三章:控制语句顺序结构选择结构(if语句、switch语句)循环结构(for循环、while循环、do-while循环)循环控制语句(break、continue、goto)嵌套控制语句第四章:数组和字符串数组的定义和初始化数组的访问和操作多维数组字符数组和字符串的处理字符串的输入和输出第五章:函数和递归函数的调用和返回函数的参数传递(值传递、地址传递)递归函数的原理与应用递归和迭代的比较第六章:指针指针的定义和声明指针与数组的关系指针的运算(指针的加减、指针的比较)指针与字符串的处理函数指针和指针数组第七章:结构体和共用体结构体的定义和初始化结构体中成员的访问和操作结构体的嵌套和对齐枚举类型的定义和应用第八章:文件操作文件的打开和关闭文件的读写操作(字符型文件、二进制文件)文件指针的位置控制文件的随机访问和更新第九章:动态内存管理内存分配与释放的概念malloc函数和free函数的使用calloc函数和realloc函数的使用动态分配二维数组的操作第十章:预处理指令宏定义的使用条件编译指令的应用文件包含指令的作用错误指示和行控制指令无论是在学习C语言的过程中,还是在实际应用中,以上这些章节知识点都是非常重要的。

掌握这些知识点,将帮助你深入了解C语言的基本原理和常用功能,为编写高效、健壮的程序奠定扎实基础。

在学习过程中,请务必理解并实践每个章节的知识点,并结合实际案例进行练习和应用,以加深对C语言的理解和应用能力。

祝你在学习C语言的道路上取得优异的成绩!。

c语言知识点总结大一第一章

c语言知识点总结大一第一章

c语言知识点总结大一第一章C语言知识点总结C语言作为一门广泛应用于计算机编程领域的高级编程语言,是大一计算机科学专业的重要课程之一。

在第一章中,我们主要学习了关于C语言的基本概念、语法结构以及一些常用的数据类型和运算符。

本文将对这些知识点进行总结和归纳,帮助大家更好地理解和掌握C语言的基础知识。

一、C语言的基本概念1.1 C语言的起源与发展C语言是由贝尔实验室的Dennis Ritchie于20世纪70年代初开发的一种通用编程语言。

它既具备高级语言的特性,又可以直接操作计算机硬件,具有良好的可移植性和高效的执行效率,因此得到了广泛的应用和普及。

1.2 C语言的编译与执行C语言的编译过程主要包括预处理、编译和链接三个阶段。

在预处理阶段,预处理器会根据源代码中的预处理指令对代码进行处理;在编译阶段,编译器将预处理后的代码转换成汇编代码;在链接阶段,链接器将编译得到的目标文件与库文件进行链接,生成可执行文件。

最终,可执行文件可以在计算机上执行。

1.3 C语言的特点与优势C语言具有结构化、模块化和可移植性等特点。

它遵循自顶向下、逐步求精的设计理念,可以帮助程序员开发出结构清晰、易读易懂、易于维护的程序。

此外,C语言还提供了丰富的库函数和强大的指针操作功能,可以灵活地处理各种数据类型和数据结构。

二、C语言的语法结构2.1 程序的基本组成一个C语言程序主要由函数、语句和表达式等基本组成单位构成。

其中,函数是C语言中的基本执行单元,语句是函数中的一条命令,表达式则是对数据进行操作和计算的方式。

2.2 基本数据类型与变量在C语言中,常用的基本数据类型包括整型、浮点型、字符型和布尔型等。

我们可以通过声明变量来定义和使用这些数据类型,为其分配合适的内存空间。

2.3 运算符和表达式C语言中提供了各种运算符,包括算术运算符、关系运算符、逻辑运算符和位运算符等。

我们可以使用这些运算符对数据进行各种操作和表达。

2.4 控制流程和循环结构控制流程和循环结构是编程中非常重要的结构,可以帮助我们控制程序的执行路径。

C++ Primer 读书笔记

C++ Primer 读书笔记
9. break只能出现在循环或switch结构中,或者出现在嵌套于循环或switch结构中的语句里;
10. continue语句导致最近的循环语句的单次迭代提前结束,对于while和do while语句,继续求解循环条件,而对于for循环,程序流程接着求解for语句头中章 语句
1. 复合语句,通常被称为块,是用一对花括号括起来的语句序列(也可能是空的);
2. else分支只能后接单个语句;
3. IO类型可以用作条件,但vector类型和 string类型一般不可用作条件;
4. 将else匹配给最后出现的尚未匹配的if子句来解决悬垂else问题带来的二义性;
4. 只要被赋值的每个操作数都具有相同的通用类型,C++语言允许将这多个赋值操作写在一个表达式中:
int ival,jval;
ival=jval=0;
5. 将sizeof用于表达式expr是,没有计算表达式expr的值。特别是在sizeof *p 中,指针p可以持有一个无效地址,因为不需要对p做解引用操作;
3. C++语言无法检测指针是否未被初始化,也无法区分有效地址和由指针分配到的存储空间中存放的二进制位形成的地址;
4. 指针只能初始化或赋值为同类型的变量地址或另一指针;
5. C++提供了一种特殊的指针类型void*,它可以保存任何类型对象的地址;
6. void*指针只支持几种有限的操作:与另一个指针进行比较:向函数传递void*指针或从函数返回void*指针;给另一个void*指针赋值;不允许使用void*指针操纵它所指向的对象;
13. C++支持两种初始化变量的形式:复制初始化和直接初始化。复制初始化语法用等号(=),直接初始化则把初始化式放在括号中;

C语言各章节知识点总结

C语言各章节知识点总结

C语言各章节知识点总结C语言是一种常用的编程语言,广泛应用于操作系统、嵌入式系统、网络设备等领域。

下面是C语言各章节的知识点总结。

第一章:C语言概述1.C语言的起源和发展历史。

2.C语言的特点和优势。

3.C语言的应用领域和重要性。

4.C语言的编译过程和基本语法规则。

第二章:基本数据类型和运算符1.C语言的基本数据类型,如整型、浮点型、字符型等。

2.基本数据类型的存储范围和格式化输出。

3.C语言的运算符和运算符优先级。

4.表达式和赋值语句。

第三章:控制语句1. 条件语句,如if语句、switch语句。

2. 循环语句,如for循环、while循环、do-while循环。

3. 循环控制语句,如break语句、continue语句。

第四章:数组和指针1.数组的定义和初始化。

2.一维数组和二维数组的使用。

3.字符数组和字符串的处理。

4.指针的定义和操作。

5.数组和指针的关系。

第五章:函数1.函数的定义和调用。

2.函数的参数传递和返回值。

3.局部变量和全局变量。

4.递归函数和函数指针。

5.函数库的使用。

第六章:结构体和共用体1.结构体的定义和初始化。

2.结构体的访问和操作。

3.结构体数组和结构体指针。

4.共用体的定义和使用。

第七章:文件操作1.文件的打开和关闭。

2.文件的读写操作。

3.文件指针和文件的定位。

4.随机访问文件。

5.文件的错误处理和异常处理。

第八章:预处理和编译1.C语言的预处理指令和宏定义。

2.头文件的引用和包含。

3.条件编译和预处理器的工作过程。

4.编译和链接的过程。

第九章:动态内存管理1.动态内存分配和释放。

2. malloc函数和free函数的使用。

3.内存泄漏和内存溢出的问题。

4.堆和栈的区别和管理。

第十章:指针的高级应用1.指针数组和指向指针的指针。

2.函数指针和回调函数。

3.结构体指针和链表的操作。

4.动态内存分配和指针的应用。

第十一章:位运算和位域1.位运算的基本操作,如与、或、非、移位等。

C语言各章节知识点总结

C语言各章节知识点总结

C语⾔各章节知识点总结第⼀部分“C语⾔基础知识”知识点1、C程序的基本结构C程序是由函数构成的。

每个程序由⼀个或多个函数组成,其中必须有且仅有⼀个主函数main( )。

main函数是⼀个可执⾏C语⾔程序的⼊⼝和正常出⼝,⽽不论其在整个程序中书写的位置如何。

在C语⾔中,⼤⼩写字母是有区别的。

(例如习惯使⽤⼩写字母定义变量,⽤⼤写字母定义常量)。

C程序的注释有两种⽅法,⼀种是⾏注释,使⽤“//”;另外⼀种是块注释,使⽤“/* */”,注意“/*”与“*/”不能嵌套使⽤。

C语⾔书写较为灵活,但是提倡采⽤缩进格式进⾏程序书写,以体现语句之间的层次感。

C程序每条语句以“分号”作为结束标志。

以下⼏种情况不得使⽤分号:(1)所定义的函数名称后不得使⽤分号;(2) if…else…语句是⼀个整体,中间不能使⽤分号将其分隔开;(3)预编译命令后不能使⽤分号。

2、C程序开发步骤C语⾔在计算机上的开发过程主要由以下四个步骤组成:第⼀步:编辑。

⽣成后缀名为“.c”的源⽂件第⼆步:编译。

⽣成后缀名为“.obj”的⽬标⽂件第三步:连接。

⽣成后缀名为“.exe”的可执⾏⽂件第四步:运⾏。

3、VC++6.0开发⼯具的使⽤按下功能键Ctrl+F7编译程序;按下功能键F7连接程序;按下功能键Ctrl+F5运⾏程序;若程序在编译和连接过程中有语法错误,则按下功能键F4定位错误所在⾏并根据错误提⽰信息改正错误(原则是先解决error,再解决warning)。

4、C语⾔中标识符的命名规则标识符由字母、数字、下划线组成;规定第⼀个字符必须为字母或下划线。

标识符定义的变量名、函数名、常量名等最好做到“见名知义”;⼤⼩写代表不同含义;不能使⽤关键字;最好不要与C语⾔的库函数同名。

5、C语⾔的数据类型C语⾔的数据类型由基本类型和复杂类型构成。

其中基本数据类型包括字符型(char)、整型(int,short,long)、实型(float,double);复杂数据类型包括指针类型、数组、结构体、联合体。

C++Primer学习笔记

C++Primer学习笔记

第1 章快速入门写程序的一般步骤:定义数据结构保存数据、定义函数、定义变量、实现处理逻辑、实现输入输出1.1main函数由操作系统调用,main函数执行完时返回一个值给操作系统,返回0表示成功执行。

记住:main函数是唯一被操作系统显示调用的函数;main函数返回类型必须是int型return返回值的类型必须和函数返回类型相同或者可以转换成函数的返回类型1.2iostream库:类istream,ostream标准输入:istream类对象cin标准输出:ostream类对象cout。

读cin会刷新cout,当程序正常结束时也会刷新cout。

标准错误:ostream类对象cerr。

默认情况下cerr不缓冲。

标准日志:ostream类对象clog。

默认请问下写到clog时带缓冲。

命名空间:C++标准库定义的名字在命名空间std中输出操作符<<:将右操作数写到左操作数ostream对象中,返回左操作数。

注意cout<<”Enter two nubmers:”是一个表达式,其返回结果是左操作数的值(即输出流cout本身),因此输出请求可以链接在一起;由操作符重载知<<相当于一个函数,传入实参是两个操作数,返回值是表达式结果。

操纵符endl:换行,会刷新输出流(理解:即刷新与设备相关的缓冲区)作用域操作符”::”:std::cout表示使用命名空间std中的cout输入操作符>>:从左操作数istream对象中读取数据保存到右操作数对象中,并返回左操作数1.4标准C++中,for语句头中定义的计数变量是局部的,for循环结束后这个变量不可访问,而以前版本的C++中是可访问的文件结束符的键入:Windows中键入Ctrl+z,Unix/Linux/Mac Os中键入Ctrl+d1.5内置类型:C++内建的数据类型,如int,char等类类型:用class c_name定义的类c_name可理解为一种新的数据类型(c_name 类型),可以像使用int,long,char等内置类型一样使用c_name类型来定义变量头文件的引入:标准库的头文件用< >括起来,非标准库的头文件用双引号””括起来第2 章变量和基本类型2.1动态类型语言:在运行时才执行类型检查,结果可以直接使用一个变量,无需事先定义,如Smalltalk Python静态类型语言:在编译时执行类型检查,结果是程序使用某个名字前,必须告知编译器该名字的类型,如C++基本内置类型:包括算术类型(整数、浮点数、字符、布尔值)和void特殊类型,C++标准定义了每个算术类型的最小存储空间,但并不阻止编译器使用更大的空间整型:bool,char,wchar_t,short,int,long。

C PRIMER笔记

C  PRIMER笔记

C++Primer笔记leilei2013-8-2目录第二章开始学习c++ (1)第三章数据处理 (1)3.1简单变量 (1)3.2const限定符 (2)3.3浮点数 (2)3.4c++算术操作符 (2)第四章复合类型 (2)4.1数组(array) (2)4.2字符串 (3)4.3string类简介 (4)4.4结构(struct)简介 (4)4.5共用体(union) (5)4.6枚举类型(enum) (5)4.7指针和自由存储空间 (5)4.8指针、数组和指针算术 (6)第五章循环和关系表达式 (7)5.3while循环 (7)5.5循环文本输入 (8)5.6嵌套循环和二维数组 (8)第六章分支语句和逻辑操作符 (8)第七章函数——c++的程序模块 (9)7.3函数与数组 (9)7.9函数指针 (9)第八章函数探幽 (10)8.1内联函数 (10)8.2引用变量 (10)8.3默认参数 (12)8.4函数重载 (12)8.5函数模板 (12)8.6总结 (13)第九章内存模型和名称空间 (14)9.1单独编译 (14)9.2存储持续性、作用域和链接性 (14)9.3布局new操作符 (15)9.4名称空间 (15)第十章对象和类 (16)10.1过程性编程和面向对象编程 (16)10.2抽象和类 (16)10.3类的构造函数和析构函数 (18)10.4this指针 (19)10.5对象数组 (19)10.7类作用域 (19)10.9总结 (19)第十一章使用类 (20)11.1操作符重载 (20)11.6类的自动转换和强制类型转换(未看) (21)第十二章类的动态分配内存 (21)12.3总结 (23)第十三章类继承 (23)13.1公有派生 (23)13.2有关派生类构造函数的要点 (24)13.3继承——is-a关系 (24)13.4多态公有继承 (24)13.5访问控制:protected (25)13.6抽象基类 (26)13.7继承和动态内存分配 (26)13.8类设计回顾 (27)第十四章C++中的代码重用 (29)14.1包含对象成员的类 (29)14.2私有继承 (29)14.3多重继承(MI) (30)14.4类模板 (32)14.5总结 (32)第十五章友元、异常和其他 (33)15.1友元 (33)15.2嵌套类 (33)15.3异常 (34)15.4RTTI (34)第十六章string类和标准模板库 (35)16.1string类 (35)16.3STL (36)16.4通用编程技术 (37)c++源代码风格1每行一条语句2每个函数的两个花括号各占一行3函数中的语句都对于花括号进行缩进4与函数名称相关的圆括号周围没有空白(空行将声明语句与程序的其他部分分开,或在变量前声明,c++的做法是尽可能在首次使用变量前声明)。

C++Primer第1章

C++Primer第1章

1.目的:Linux,Windows操作系统下用于开发的最典型的语言。

对于编程技术的学习分为以下几个层面,面向结构编程,面向对象编程,设计模式。

一个是一个的基础。

我们的目的在于带领大家进入程序设计这个神秘的王国。

师傅引进门,修行在个人。

教会大家以正确的方法来学习和提高。

教材简介:是一本久负盛名的C++教材。

C++作为目前业界广泛使用的编程语言,可谓包罗万象,博大精深。

20多年来,讲述C++的图书很多。

但业界公认的完整涵盖C++标准的权威著作只有两部,被喻为“倚天屠龙”。

这是其中一部。

另一部是C++之父Bjame Stroustrup 所著的《C++程序设计语言》。

内容精辟深刻,但要求较高,适合有一定经验的程序员提升功力之用。

本教材的原版到第3版就累积销售了45万册以上。

其中文版引入国内时,也产生了极大影响,甚至曾经出现过洛阳纸贵的局面。

本书的成功离不开强大的作者阵容。

第一作者Stanley Lippman早在C++还处于萌芽时期就是C++之父Stroustrup所在的C++编译器项目团队的成员,目前又在微软领导Visual C++的开发,对C++是了如指掌。

实践经验极为丰富,多年来著书撰文不辍,在开发社区深服众望,已成为公认的大师级人物。

第二作者Josee Lajoie从第3版开始加入,她曾在IBM从事C++编译器开发,并担任过ISOC++标准委员会核心语言工作组主席多年。

她的加盟,充分保证了本书与C++标准的兼容。

应该说本书的第3版已经很完美了,但是第4版和第3版之间的改动非常大,甚至很难找到相同的段落。

其中的原因在于,C++是从C语言继承而来的。

由于C++对编程风格的支持,以及各种误解和不良习惯,都大大增加了C++教学和使用的复杂性。

而传统教材和教学方法的各种弊端更加剧了这一情况,使C++成为不少人望而生畏的难学难用的“专家语言”。

在本书的第4版中,几位大师级的作者很好地回应了上述挑战。

第三作者Barbara Moo,她作为项目经理,曾领导了包括Stroustrup(C++之父)和Lippman(第一作者)在内的贝尔实验室C++编译器团队。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C++ Primer》第一部分学习笔记汇总——基本语言《C++ Primer》第1章学习笔记第01章:快速入门这一章,书上用了一个例子贯穿每部分的内容,“书店的书本销售情况”(包括销售册数与单价)。

第二节:介绍输入与输出@ 学习摘录001:——endl称为操纵符(manipulator),可刷新与设备相关联的缓冲区。

——在刷新缓冲区时,用户可立即看到写入到流中的输出。

——程序员经常在调试过程中插入输出语句,这些语句都应刷新输出流。

摘录有想001:——这几句让我想起之前自己以及朋友们出现过的错误,当if(!cin)时,只是cin.clear()是不够的,还需要用cin.sync()清空缓冲区或者用while(cin.get() != ‘\n’)continue;提取多余字符。

看来以后得多注意输入输出缓冲区了。

第三节:关于注释@ 学习摘录002:——当注释多行时,最好能直观指明每一行都是注释。

摘录有想002:——这让我注意到了之前没怎么注意的问题,看《数据结构与算法分析》的一书上是用了这样的格式的,才发觉原来那书的编译习惯是不错的。

/** now, for a example.* like this.*/第四节:控制结构@ 学习摘录003:——关于控制结构我想到的是之前《C++ Primer Plus》上提到过,循环(判断条件),条件if(判断条件)都会将括号内的内容转换为bool型作为执行与否的依据的。

@ 学习摘录004:——编译器能查出的最普通的错误1.语法错误 2.类型错误 3.声明错误摘录有想004:——知道编译能检查出错误的话,在编译习惯上有些就可以利用这一点了,可以避免在调试的时候才发现错误了,这也是一个网友跟我说过起的。

如:if(i = 1),将其写为if (1 = i)的话就能在编译时检测出自己要写的是if ( 1 == i)了。

第五节:类的简介@ 学习摘录005:——什么是成员函数:成员函数是由类定义的函数,有时称为“类方法”(method)@ 学习摘录006:——使用类时需注意的三个问题:——1. 类的名字是什么?2. 它在哪里定义? 3. 它支持什么操作?摘录有想006:——很多同学不明确的一点是第3点,之前我看同学的程序时,问同学你的这个类想要实行什么样的功能时,他自己也答不上。

《C++ Primer》第02章学习笔记第02章:变量和基本类型这一章,主要讲述了常量,变量和一些类型的使用方法,注意事项。

第三节:变量@ 学习摘录007:——C++是一门静态类型语言,在编译的时候会作类型检查,静态类型检查能帮助我们更早地发现错误。

摘录有想007:——静态类型使得编译器必须能识别程序中每个实体的类型。

假如没有定义或定义错的时候就能检查出来啦。

@ 学习摘录008:——左值:lvalue,左值可以出现在赋值语句的左边或右边。

——右值:rvalue,右值只能出现在赋值的右边,不能出现在赋值语句的左边。

——变量是左值,因此可以出现在赋值语句的左边,数字字面是右值,因此不能被赋值。

摘录有想008:——在我理解中,因为变量可在左也可在右,因此它为左值,而数字则只能出现在右边,因此它为右值。

@ 学习摘录009:——变量提供了可以操作的有名字的存储区,对象就是内存中具有类型的区域。

摘录有想009:——例如:int a; class b{}; b c; 这里,a 和c属于对象。

@ 学习摘录010:——初始化变量不是赋值。

——初始化:指创建变量并给它赋初始值。

——赋值:是擦除对象的当前值并用新值代替。

@ 学习摘录011:——初始化变量有两种形式。

——1. intival(1024); // direct-initialization 直接初始化——2.int ival = 1024; // copy-initialization 复制初始化@ 学习摘录012:——复制初始化和直接初始化之间的差别是很微妙的。

——现在我们只需知道,直接初始化的效率更高。

@ 学习摘录013:——未初始化变量引起的错误难以发现,永远不要依赖未定义行为,使用未初始化的变量是常见的程序错误。

虽然许多编译器都至少会提醒不要使用未初始化变量,但是编译器并未被要求去检测未初始化变量的使用。

而且,没有一个编译器能检测出所有未初始化变量的使用。

@ 学习摘录014:——extern声明不是定义,也不分配存储空间。

——事实上,它只是说明变量定义在程序的其他地方。

摘录有想014:——extern的使用得注意,一个文件里面放定义,另外一个文件里面放声明才可以,上次同学就是犯了这样的错误,没有在另一个文件中声明就想用extern变量了。

@ 学习摘录015:——只有当声明也是定义时,声明才可以有初始化式,因此只有定义才分配存储空间。

@ 学习摘录015:——看来下次写程序时真的要直接在声明的时候就定义好,那样的话就安全多了。

@ 学习摘录016:——作用域可以分为三种:——1.全局作用域(global scope)——2.局部作用域(local scope)——3.语句作用域(statement scope)摘录有想016:——有语句for(intval = 1; val<= 10; ++val) sum += val;——此处,val定义在for语句的作用域中,只能在for语句中使用,而不能在main 函数的其他地方。

@ 学习摘录017:——通常把一个对象定义在它首次使用的地方是一个很好的办法。

放置声明的一个约束是,变量只在从其定义处开始到声明所在的作用域的结束才可以访问。

第五节:引用@ 学习摘录018:——“const引用”的意思是“指向const对象的引用”。

@ 学习摘录019:——非const引用只能绑定到与该引用同类型的对象。

——const引用则可以绑定到不同但相关的类型对象或绑定到右值。

第八节:类类型@ 学习摘录020:——每类都定义了一个接口(interfer)和一个实现。

——接口由使用该类的代码需要执行的操作实组成。

——实现一般包括该类所需要的数据。

——类体定义了组成该类型的数据和操作。

操作称为成员函数,数据则称为数据成员。

@ 学习摘录021:——用class和sturct关键定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为pulbic,而class 的成员为private.@ 学习摘录022:——当我们在头文件中定义了const变量后,每个包含该头文件的源文件都有了自己的const变量,其名称和值一样。

@ 学习摘录023:——避免多重包含,为了避免多重包含,避免名字冲突,预处理器变量经常用全大写字母表示。

#ifndef ABC_H#define ABC_H // Definition of ABC class and related functions goes here#endif摘录有想023:——看了这么多书,这么多个例子,终于知道为什么它总是用大写来表示了。

《C++ Primer》第03章学习笔记第03章:标准库类型C++还定义了一个内容丰富的抽象数据类型标准库,其中最重要的标准库类型是string和vector,它们分别定义了大小可变的字符串和集合。

另一种标准库类型bitset提供了一种抽象方法来操作位集合。

第一节:命名空间using声明@ 学习摘录024:——一旦使用了using声明,我们就可以直接引用名字,而不需要再引用该名字的命名空间:——// using declaration states our intent to use these names from the namespace std.——using std::cin;——using std::string;@ 学习摘录025:——如果在头文件中放置using声明,就相当于在包含该文件的每个程序中都放置了同一个using声明,不论该程序是否需要using声明。

摘录有想025:——我想这相当于全局变量跟局部变量的作用吧。

@ 学习摘录026:——通常头文件中应该只定义确实必要的东西。

请养成这个习惯。

摘录有想026:——书上建议少用using namespace std这样的风格,以后写程序就尽量用using声明吧,少用using编译指令。

第二节:标准库string类型@ 学习摘录027:string操作——s.empty() // 检查字符是否为空,bool类型——s.size(); // 返回s中字符的个数——s[n]; //返回s中位置为n的字符,位置从0开始计数摘录有想027:——以前还不知道原来有empty()这一操作,初见empty还以为要清空这个对象的数据呢,其实不然,是检查字符串是否为空。

If(s.empty()) // ok, empty@ 学习摘录028:——size操作返回的是string::size_type类型的值。

String类类型和许多其他库类型都定义了一些配套类型(companion type)。

通过这些配套类型,库类型的使用就能与机器无关(machine-independent)。

Size_type就是这些配套类型中的一种。

它定义为unsigned型(unsigned int或unsigned long)具有相同的含义,而且可以保证足够大能够存储任意string对象的长度。

摘录有想028:——写程序时不要把size的返回值赋给一个int变量了。

@ 学习摘录029:——如在有16位int型的机器上,int类型变量最大只能表示32767个字符的string对象,而能容纳一个文件内容的string对象轻易就会超过这个数字。

因此,为了避免溢出,保存一个string对象size的最安全的方法就是使用标准库类型string::size_type@ 学习摘录030:——string对象比较操作是区分大小写的,即同一个字符的大小写形式被认为是两个不同的字符。

在多数计算机上,大写的字母位于小写字母之前;任何一个大写字母都小于任意的小写字母。

摘录有想030:——在比较时需注意大小写了,想起以前cctype有一个用于转换字符的函数,把大写转为小写之类的功能可以很容易实现。

@ 学习摘录031:——string类型通过下标操作符([])来访问string对象中的单个字符。

下标操作符需要一个size_type类型的值,来标明要访问字符的位置。

这个下标中的值通常被称为“下标”或“索引(index)”。

@ 学习摘录032:——string对象的下标从0开始,而s[s.size() – 1]则表示s的最后一个字符。

第三节:标准库vector类型@ 学习摘录033:——虽然可以对给定元素个数的vector对象预先分配内存,但更有效的方法是先初始化一个空vector对象,然后再动态地增加元素。

相关文档
最新文档