C++ Prinmer笔记
文章平均质量分 55
学习在路上,一些总结
CodeDolp
这个作者很懒,什么都没留下…
展开
-
第六章-函数基础
由于数组是以指针形式传递给函数的,所以不知道数组的维度,必须由调用者提供额外信息。一旦在内层作用域声明函数,它将隐藏外层作用域所有版本的函数。还包含后面的参数列表,说明返回的指针指向函数类型,类型为。函数调用时,只能省略尾部实参,因此要合理设计形参的顺序。定义在函数内部的局部静态对象,函数执行结束也不会销毁。实参会自动转换为指向数组首元素的指针,形参定义为底层。表示函数返回的指针指向含有10整型对象的数组。由于数组不能拷贝,所以函数不能返回数组。,但可以返回指向数组或函数的指针。由于传参的时候会忽略顶层。原创 2023-04-13 14:21:01 · 86 阅读 · 0 评论 -
第五章-语句相关
由于 case 分支可能被跳过(变量初始化操作),后续 case 分支有可能使用=被跳过 case 分支中定义的变量,出错由于不确定 switch 语句中的控制流,所以要在 case 分支中定义变量时,应该使用块作用域。原创 2023-04-13 13:38:04 · 57 阅读 · 0 评论 -
第四章-表达式相关
左侧运算对象可以保证右侧运算对象求值过程的正确性和安全性,例如 先判断下标是否有效,再依下标访问对象(使用&&)在一条复合语句中,如果出现多个求值表达式,同时它们会改变同一对象的状态,则它会产生未定义的行为。在需要右值的地方可以用左值替代,使用左值的内容;,没有严格的调用顺序,因此会存在类似数据冒险的情况。先求左侧运算对象的结果再求右侧运算对象的结果,赋值结果返回的是左侧运算对象,且是一个左值。规定运算对象的组合方式,括号无视优先级。运算结果的符号匹配第一个数字的符号,即。的结果符号与 m 的符号相同。原创 2023-04-11 19:10:06 · 82 阅读 · 0 评论 -
第三章-数组
若用字符串字面值(非 string 对象)初始化字符数组,则字符数组会多占用一个位置放’\0’,这也是 C 风格的字符串。范围 for 可以实现数组遍历,使用范围 for 是因为系统知道数组的维度(维度属于数组类型的一部分)指明维度,初始值的总数量就不应该超过维度,若还有剩,则剩下的使用默认初始值。使用范围 for 循环时,除了最内层的循环外,其他循环都应该是引用类型(使用范围 for 循环把管理数组索引的任务交给系统。不允许使用 auto 关键字来推断数组的类型。数组名字就是指向数组首元素的指针。原创 2023-04-11 17:44:54 · 48 阅读 · 0 评论 -
第三章-vector容器基础
{}总是尽可能按照列表初始化来处理提供的值,只有在不能进行列表初始化时才用来构造对象。,T 表示容器中潜在元素对象的类型(也就是所容纳对象的类类型)与 string 对象相似,size()、empty()等。()中提供的值是用来构造 vector 对象的,元素数量。功能:把一个值当作 vector 对象的尾元素压入到尾部。可以看作动态数组,只管使用即可,容量的问题无需关心。初始值,由容纳的类类型决定(默认初始化)对于不存在默认初始化的类,必须提供初始值。,表示用 10 个 int 类型的元素。原创 2023-04-11 17:11:48 · 44 阅读 · 0 评论 -
第三章-string对象基础
size 返回的是 string::size_type 类型,是一个无符号数(切忌混用无符号数和有符号数),可以通过。作用:对于 string 对象中的每一个字符(迭代得到)执行操作(要想改变原字符串需要加引用)首先要确保下标不越界(体现在循环条件中),然后结合下标运算符进行操作。将两个 string 拼接起来得到一个新的 string 对象。优先按字典序比较,若字典序无法比较出结果,则再按长度比较。使用超出范围的下标会引发不可预知的结果。字面值之间是不能拼接的,例如。可以保留输入中的空白符,原创 2023-04-11 16:51:42 · 43 阅读 · 0 评论 -
第三章-迭代器基础
所有标准库容器都支持迭代器,string 不属于容器但也支持迭代器。迭代器也可以通过递增操作实现访问下一元素,最多移动到尾后迭代器。行为类似于指针,迭代器也提供了对对象进行间接访问。原创 2023-04-11 16:35:28 · 64 阅读 · 0 评论 -
第二章-变量与基本类型
some notes原创 2023-04-08 16:25:07 · 123 阅读 · 1 评论