博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
malloc与new,C++中的指针与引用,C++struct与class的区别
阅读量:5301 次
发布时间:2019-06-14

本文共 1010 字,大约阅读时间需要 3 分钟。

 

一.struct与class的区别

  1. struct与class的区别不大

    在默认情况下,class默认的权限是private(私有的),struct默认的是public(共有的)。

  2.但是在C++中,struct进行了扩展,现在它已经不仅仅是一个包含不同数据类型的数据结构了,它包括了更多的功能。

 

二 .malloc与new,delete与free的区别

  1.malloc与free是库函数里的函数,调用时要添加头文件,delete与new是C++中的运算符

  2.malloc返回值是void*指针,new返回的是有类型的指针

  3.malloc创建时不会调用构造函数,free不用调用析构函数,但new与delete会自动调用

  4.delete不可以重复释放,但是可以释放空指针。

 

三.指针与引用

《A.引用》  

  1.通俗的讲,引用就是取别名

  2. 引用必须初始化,不能定义空引用,“野引用”,“悬空引用”是存在的(引用堆内存的数据,当堆内存释放后就不应该使用了)

  3.引用只能是一次性的,无法再更改(引用一旦成功,他就是一个变量了)

  4. 引用也可以当做函数的参数,它引用的对象就是函数的实参,引用可以达到指针的效果

    a.函数之间共享变量(指针也可以)

    b. 提高参数的传递效率(比指针要高)

    c. 当参数来使用,

      建议:能使用引用就不要使用指针,但是引用不可以取代指针

  5. 引用也可以当做函数的返回值,但绝不能返回局部变量的引用

《B.指针》

  1.可以在这三种情况下使用指针:1.函数之间共享变量 2. 使用堆内存 3. 优化传参 4. 可以访问硬件内存

  2. 使用指针要注意的情况

    1. 定义指针变量时初始化

    2. 不返回局部变量的地址

    3. 指针所指向的空间被释放时,要即使置空

  3. 与const相关的指针

    const int* p :不能通过*p去修改他指向的内存

    int const* p 不能通过*p去修改它指向的内存

    int * const p : 无法改变p

    const int * const p :p无法改变,*p无法去改变内存

转载于:https://www.cnblogs.com/gumpzlc/p/9532378.html

你可能感兴趣的文章
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
JavaScript动画打开半透明提示层
查看>>
Mybatis生成resulteMap时的注意事项
查看>>
jquery-jqzoom 插件 用例
查看>>
1007. Maximum Subsequence Sum (25)
查看>>
iframe的父子层跨域 用了百度的postMessage()方法
查看>>
图片生成缩略图
查看>>
动态规划 例子与复杂度
查看>>
查看oracle数据库的连接数以及用户
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>