zoukankan      html  css  js  c++  java
  • C++ Primer Plus 6 笔记(2)

    第4章

    1.求数组元素个数的一种方法:num=sizeof 数组名/sizeof (元素类型)

    2.确定字符串所需的最短数组时,别忘了将结尾的''计算在内。表面可以无,内存必须有。

    3.'S'表示字符常量,"S"表示两个字符(字符S和)组成的字符串,"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 " " instead of endl.)" << ' ';

           Jim "King" Tutt use 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对象可以赋给另一个对象

  • 相关阅读:
    Redis分布式锁的正确加锁与解锁方式
    高并发系统中的限流算法
    谈谈 InnoDB引擎中的一些索引策略
    面试必问:手写一个内存泄漏的程序
    空指针异常与Optional类
    Redis的内存淘汰策略
    explain的关键字段的意义
    pycharm编辑器简单配置-- 持续更新完善
    vscode 插件-better comments-代码注释高亮
    阿里前端开发规范-转载
  • 原文地址:https://www.cnblogs.com/yawenw/p/10542696.html
Copyright © 2011-2022 走看看