C++ Primer Plus 6 笔记(2)

本文深入探讨了C++编程中的关键概念与实践技巧,包括数组元素计数、字符串处理、指针操作、动态内存管理及字符串赋值的正确方法。同时介绍了string类的使用、原始字符串表示、共用体和枚举的运用,以及如何利用new和delete进行内存分配与回收。文章还讲解了数组名与指针的区别、动态结构的创建、模板类vector和array的特性,为C++开发者提供了宝贵的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第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对象可以赋给另一个对象

 

转载于:https://www.cnblogs.com/yawenw/p/10542696.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值