为了账号安全,请及时绑定邮箱和手机立即绑定

趣味 C++ 进阶

难度初级
时长 8小时 0分
学习人数
综合评分9.60
10人评价 查看评价
10.0 内容实用
8.8 简洁易懂
10.0 逻辑清晰
  • malloc是C语言标准库中的函数,用于在堆内存中动态分配指定大小的内存空间。它的声明如下:

    c
    void *malloc(size_t size);
    malloc函数接受一个参数size,表示要分配的内存空间的字节数。它返回一个指向分配的内存空间起始地址的指针。

    在这段代码中,函数func使用malloc函数动态分配了4个int类型元素大小的内存空间,并将起始地址赋给指针变量arr。然后,函数将这个指针变量作为返回值返回给调用者。

    在main函数中,通过调用func函数获取到分配的内存空间的起始地址,并将该地址赋给指针变量p。然后,通过调用free函数,释放了这块内存空间。

    总之,malloc函数可以用来动态分配内存空间,而free函数则用来释放已经分配的内存空间,以便其他程序或资源可以重复利用它们。在使用malloc函数分配内存后,务必使用相应的free函数释放内存,以避免内存泄漏问题。
    查看全部
    1. const 修饰普通变量

    const int a, 则表示 a 是一个常量,你不可以在后续对其进行修改。因为 a 不可修改,所以在创建的时候就要对 a 进行赋值,不对其进行赋值则会报错。


    1. const 修饰指针

    • 只有一个 const,如果 const 位*左侧,表示指针所指数据是常量,不能通过解引用修改该数据;指针本身是变量,可以指向其他的内存单元。

      int const * p = &a;

    • 只有一个 const,如果 const 位于*右侧,表示指针本身是常量,不能指向其他内存地址;指针所指的数据可以通过解引用修改。

      int * const p = &a;

    • 两个 const,*左右各一个,表示指针和指针所指数据都不能修改

    1. const修饰函数参数

       const 修饰函数参数的时候,其作用域仅仅限制在函数内部,只要在函数中保持其不变性就可以了。

    2. const修饰成员函数

      const修饰的成员函数不能修改任何的成员函数,

      const修饰的成员函数不能调用非const成员函数。

    3. const修饰函数返回值

      址传递,返回指针,引用。该返回值加一个const,可以防止返回值被调用。

      值传递,值传递时,返回值会复制一份,加不加const都可以。

    查看全部
    1. 静态联编

    ···c

    Child * obj = new Child();
    Base * baseobj = (Base *)obj;
    baseobj->func();
    delete obj;
    return 0;


    再来看看这个例子,我们通过强制转换来指定 func 执行的是哪个。这个过程是在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息。


    1. 动态联编:

      运行虚函数的实现

    查看全部
  • https://img1.sycdn.imooc.com//64edb79b0001fa7c05360281.jpg

    继承与多态

    查看全部
  • 要将对象分配到堆上,需要用到另外两个关键字,new 和 delete。new 用来分配对象,delete 用来删除对象。new 会返回一个指针,在使用完毕后,要通过 delete 把这个指针指向的地址释放掉。

    查看全部
  • 无法确认指向的指针,或者指向一个无效地址的指针,我们把他叫做野指针

    查看全部
  • 如果想要通过指针操作变量,只需要使用解引用就可以了

    查看全部
  • 对于指针的复制,就不能用浅拷贝构造函数,要用深拷贝构造函数,即对被复制对象会新开辟一个空间,把要复制的指针指向的内容复制一份到新内存空间,这样深拷贝构造之后,两个指针指向的值是相同的,且空间独立。
    查看全部
  • 要记得在cpp中展开定义时,要包含相应的hpp头文件
    查看全部
  • 类的成员默认是私有的
    查看全部
  • 面向过程是自顶向下的思想,逻辑主要是顺序,选择,循环,用动作(数据)的步骤
    查看全部
  • 比起直接调用函数,用指针函数去调用,可以得到用一个变量get函数返回值,也可以调用时传递参数
    查看全部
  • 数组名相当于一个常量指针
    查看全部
  • 函数指针的定义和调用

    查看全部
  • 字节序,就是 大于一个字节类型的数据在内存中的存放顺序。

    计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。

    我们现在有一个整数是258。用16进制表示是0x0102,然后我们把这个整数拆分成两个字节,第一个字节为 0000 0001,第二个字节为 0000 0010。

    http://img1.sycdn.imooc.com//642686910001307211060611.jpg

    查看全部

举报

0/150
提交
取消
课程须知
你需要具备基础的 C++ 语法知识,在学习本课程之前,建议先学习《趣味 C++ 入门》,快速认识 C++,熟悉 C++ 基本语法,更加快速入手进阶课程!
老师告诉你能学到什么?
在本门课程中,你将学习到:计算机存储数据的原理、指针的进阶、面向对象编程、内存管理技巧等 C++ 高级语法。在课程的最后,将带领大家使用 C++ 编写一个五子棋游戏,通过实践,加深理解,巩固学习成果。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!