C++ Primer Plus 6 笔记(2)
第4章
1.求数组元素个数的一种方法:num=sizeof 数组名/sizeof (元素类型)
2.确定字符串所需的最短数组时,别忘了将结尾的'\0'计算在内。表面可以无,内存必须有。
3.'S'表示字符常量,"S"表示两个字符(字符S和\0)组成的字符串,"S"实际上表示的是字符串所在的内存地址。在两个字符串常量中加入(空格、制表符和换行符)对整体没有影响
4. strlen()只计算可见的字符长度,而不把空字符计算在内,因此数组的长度不能短于strlen(数组名)+1
5.cin.getline(name,ArSize)与cin.get(name,ArSize)两个函数都是读取一行输入,直到到达换行符,随后getline()丢弃换行符,get()将换行符保留在队列。cin.getline(name,ArSize)==cin.get(name,ArSize).get()
6.string类#include<string>:能实现赋值拼接附加等操作。求长度int len1=str.size();int len2=strlen(str);
7.原始(raw)字符串,字符表示的就是自己。将"( 和 )”用作定界符,如果要表示字符"(,加上"+*(字符)+*"
如:cout << R"(Jim "KIng" Tutt use "\n" instead of endl.)" << '\n';
Jim "King" Tutt use \n instead of endl
cout << R"+*("(Who wouldn't?)",she whispered.)+*" << endl
(Who wouldn't?)",she whispered.
8.共用体的用途之一:当数据项使用两种或多种格式,可节省空间。
9.枚举常被用来定义相关的符号常量,而不是新类型,例如用枚举定义switch语句中使用的符号常量,如:enum{red,orange,yellow,green,blue,violet,indigo} 为0-6
10.int* 是一种类型,指向int的指针
11.指针在运行阶段分配未命名的内存以存储值——new运算符。为一个数据对象(可以是结构,也可以是基本类型)获得并分配内存的通用格式为 typeName* pointer_name = new typeName;
12.delete:不要用delete释放不是new分配(声明变量)的内存,不要用delete释放同一个内存块两次,如果是new[ ]为数组分配内存,则应使用delete[ ]释放
13.数组名被解释为其第一个元素的地址,而对数组名使用地址运算符时,得到的是整个数组的地址
14.使用new来创建数组以及使用指针来访问不同的元素,只要把指针当做数组名对待即可
15.将字符串赋值给数组,只是复制地址,应使用strcpy()或strncpy(),而不是赋值运算符来将字符串赋给数组
16.用new创建(指针类型)动态结构时,不能将成员运算符句点用于结构名,因为没有名称,只是知道地址,应该用箭头成员运算符—>(指针访问结构体内部用箭头)
17.模板类vector和array:#include<vector> #include<array>
vector可以在运行阶段调整长度,声明方式为vector<typeName> vt(n_elem),其中n_elem为常量变量都可以。
array对象长度固定,声明为array<typeName,n_elem>arr,其中n_elem只能为常量。数组必须逐个元素复制数据,但array对象可以赋给另一个对象
C++ Primer Plus 6 笔记(2)的更多相关文章
- C++Primer快速浏览笔记-类型转换
bool b = 42; // _b is true_ int i = b; // _i has value 1_ i = 3.14; // _i has value 3_ double pi = i ...
- C primer plus 读书笔记第一章
写在前面: 算法和数据结构是计算机学习的基础,而大部分书籍是用C/C++编写.所以有了把C语言重新学一遍的想法.这个系列主要是记录看C primer plus的一些笔记和部分课后习题的答案,不会总结的 ...
- 《C++ Primer》读书笔记 第一章
读<C++ Primer>才知道,自己对C++知之甚少... 写个博客记录下自己C++的成长,只是读书笔记,不是对<C++ Primer>知识点的总结,而是对自己在书上看到的以 ...
- 《C++ primer》学习笔记整理
简介 本笔记目前已包含<C++ Primer>中的绝大部分内容,但尚有部分小节有所缺漏,如 19.1.19.2 节的笔记尚未整理,会持续更新. 本项目中的学习笔记是在学完一章内容后,对其要 ...
- C Primer Plus 学习笔记 -- 前六章
记录自己学习C Primer Plus的学习笔记 第一章 C语言高效在于C语言通常是汇编语言才具有的微调控能力设计的一系列内部指令 C不是面向对象编程 编译器把源代码转化成中间代码,链接器把中间代码和 ...
- C++Primer快速浏览笔记-复合类型
C++Primer2.3节介绍了两种复合类型:引用和指针 1.引用 引用并非对象,它只是为一个已经存在的对象所起的别名. 一旦初始化完成,引用将和它的初始值对象一直绑定在一起,不能重新绑定到另一个对象 ...
- 《C++ Primer》读书笔记—第二章 变量和基本类型
声明: 文中内容收集整理自<C++ Primer 中文版 (第5版)>,版权归原书所有. 学习一门程序设计语言最好的方法就是练习编程. 1.8比特的char类型计算机表示的实际范围是-12 ...
- 《C++ Primer》读书笔记—第一章 开始
声明: 文中内容收集整理自<C++ Primer 中文版 (第5版)>,版权归原书所有. 学习一门程序设计语言最好的方法就是练习编程. 1.一个函数的定义包含四个部分:返回类型(retur ...
- 《C++ Primer》学习笔记 :命名空间的using声明
最近在学C++,在<C++ Primer>第五版的3.1节中说到使用using声明来使用命名空间中的成员,<C++ Primer>中这样写道: 有了using声明就无须专门的前 ...
- 《C++ Primer》学习笔记:迭代器介绍
<C++Primer>(第五版)中,3.4.1的例题中使用一个名为text的字符串向量存放文本文件中的数据,输出text中的内容,刚开始我这样写: #include <iostrea ...
随机推荐
- php环境一键升级脚本
因为要解析PHP页面需要配置相应的PHP环境,而系统本身的php版本又大多不合适.网上那种一键lamp和lnmp的脚本很多,但是这样一来自己能够定制的空间则少了.所以我自己编写了个门用于安装php环境 ...
- 【摘录自MDN】客户端和服务器
客户端和服务器 连接到互联网的计算机被称作客户端和服务器.下面是一个简单描述它们如何交互的图表: 客户端是典型的Web用户入网设备(比如,你连接了Wi-Fi的电脑,或接入移动网络的手机)和设备上可联网 ...
- laravel nginx下 css 和js 加载 重写规则
server { listen 80; server_name test.hanwen.com; #charset koi8-r; #access_log logs/host.access.log m ...
- Centos 下安装php
1 从php 官网下载源安装包 http://php.net/downloads.php // 安装php 扩展 2 yum install libxml2 libxml2-devel openssl ...
- Tensorflow机器学习入门——ModuleNotFoundError: No module named 'tensorflow.keras'
这个bug的解决办法: # from tensorflow.keras import datasets, layers, models from tensorflow.python.keras imp ...
- PHP的isset()、is_null、empty()使用总结
这几个变量判断函数在PHP开发中用的其实挺多的,而且粗看上去都差不多,但其实还是有不少的区别的,如果搞不清楚,也许就会遗留一些潜在的bug, 包括我自已也遇到过这样的坑,比如有一次我就遇到过用empt ...
- Java连载66-数组的两种初始化方式
一.数组 1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道数组的首元素的内存地址,要查找的元素只要知道下标,就可以快速的计算出偏移量,通过首元素内存地址加上偏移量,就 ...
- idna与utf-8编码漏洞
来自Black hat 2019 原理什么是IDN?国际化域名(Internationalized Domain Name,IDN)又名特殊字符域名,是指部分或完全使用特殊文字或字母组成的互联网域名, ...
- ubuntu13.10更新sources.list
步骤: 1>设置网络连接方式,NAT 2>自动获取ip address 10.0.2.15 3>更新源soureces.list soureces.list deb http://m ...
- Docker示例命令
1.docker run -t -i -v /root/workspace/node:/home/exam:rw docker.io/node bin/sh -t 给容器挂载一个伪终端 - ...