C++primer第四版第四章数组与指针

原创 2016年12月02日 15:23:26

Talk is cheap, show me the code.

  1. 现代C++尽量不是用指针和数组,而是使用迭代器和string,vector。

  2. 数组是不能改变长度的,两个数组不能直接赋值来实现复制,两个数组不能直接比较大小,必须通过比较每个数组元素来比较大小。vector可以改变长度,两个vector也可以通过直接赋值来实现复制,两个vector可以通过直接使用关系运算符来比较大小。

    vector<int> vect = {1, 2, 3} //right
    vector<int> vect1(1,2,3);  //wrong

  3. 指向const常量的指针和指向变量的const指针:

    int a = 1;
    const int b =2;
    const int *p1 = &b; //right p1的值可以改变,不能通过*p1改变b的值
    const int *p2 = &a; //right 但是不能通过*p2修改a的值,p2的值可以改变
    int *const p3 = &a; //right 指向a的const指针,p3的值不能改变,但是可以通过*p3改变a的值
    const int *const p4 = &b; //right 不能修改p4的值,也不能通过*p4修改b的值

    typedef string *pstring;
    string s = "hel";
    const pstring p = &s; //等同于 string *const p = &s是指向s的const指针,而不是指向const的指针

  4. string转换成数组可以使用c_str()函数。

    string str = "hello";
    const char *str1 = str.c_str();

  5. 数组转换成vector可以使用vector的构造函数。

    int arr[5] = {1, 2, 3, 4, 5};
    int *parr = a;
    arrlen = 5;
    vector<int> vect(parr, parr + arrlen);(拷贝整个数组)

  6. 指针数组和数组指针:

    `int *p[4] //指针数组,每个元素都是一个指针
    int (*p)[4] //数组指针,这是一个指针,指向一个包含4个元素的数组

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++Primer (第四版) 第四章 数组和指针

第四张 数组和指针 与vector类型相比,数组的显著缺陷在于:数组的长度是固定的,而且程序员无法知道一个给定数组的长度。数组没有获取其容量大小的size操作,也不提供push_back操作在其中...

C++ Primer 【第四版】第四章 数组和指针

第四章  数组和指针 习题4.1 假设get_size 是一个没有参数并返回int 值的函数,下列哪些定义是非法的? 为什么? unsignedbuf_size = 102...

C++ Primer 【第四版】第十三章 复制控制

1. 什么是复制构造函数?何时使用它?        只有单个形参,而且该形参是对本类类型对象的引用(常用const修饰),这样的构造函数叫复制构造函数。        copy con...

C++Primer第四版习题9.26答案调试出错的解决

C++Primer第四版习题9.26原答案调试出错的解决

C++ Primer中文版(第四版)-读书笔记【PartB】

上接PartA   p387 初始化列表 构造函数具有名字、形参表和函数体,例如 Sales_item::Sales_item(const string &book):isbn(book),u...

《C++ primer(第四版)》读书笔记4-编码规范

编写良好的泛型代码(534) 编写模板代码时,对实参类型的要求尽可能少是有益的 1)模板的形参是const引用(可以支持那些不支持复制构造函数类型的类;对于大类型对象,速度更快,因为不是复...

《C++ Primer第四版》学习笔记(七)变量和基本类型 - typedef、枚举、类

typedef 三种目的: 1. 为了隐藏特性的实现,强调使用类型的目的 2. 简化复杂的类型定义,使其更容易理解 3. 允许一种类型用于多个目的,同时使得每次使用该类型的目的明确(API...

C++ Primer 【第四版】第十五章 面向对象编程

第十五章 面向对象编程 1。什么是虚成员? 在类中被声明为virtual的成员,基类希望这种成员在派生类中重定义。除了构造函数外,任意非static成员都可以为虚成员。   2...

C++ Primer 第四版读书笔记(一)之变量和基本类型

C++语言定义了几种基本类型:字符型、整形、浮点型等。 1、基本内置类型 C++定义了一组表示整数、浮点数、单个字符和布尔值的算术类型,另外还定义了一种称为void的特殊类型。 表1.1...

C++ Primer(第四版)笔记

文摘和总结: 模板和泛编程 1.类模板的成员函数只有为程序使用才进行实例化.如果某函数从未使用,则不会实例化该成员函数. 2.非类型模板实参必须是编译时常量表达式. 3.当成员模板是类模板的成员时,它...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++primer第四版第四章数组与指针
举报原因:
原因补充:

(最多只允许输入30个字)