笔记7-C/C++

这篇博客探讨了C和C++的区别,特别是C++中的struct与class的差异。文章详细介绍了静态变量、野指针和悬空指针的概念,强调了const关键字的作用,并讨论了static的多种用途。此外,还深入讲解了C++的内存管理,包括new、delete、malloc、free的关系以及delete与delete[]的区别。博客还涵盖了多态、虚函数和纯虚函数,以及C++中的引用、指针和内存分区等核心概念。
摘要由CSDN通过智能技术生成

https://www.cnblogs.com/yjd_hycf_space/p/7495640.html

https://www.cnblogs.com/inception6-lxc/p/8686156.html

C和C++的区别

  1. C面向过程C++面向对象(但C也可以写面向对象的程序,只不过没有C++效率高)
  2. C适用嵌入式C++适合更上层的

C++中struct和class

  1. struc内部成员默认访问方式为public,class默认为private,这是struct和class最基本的差别,也是最本质的差别,其他基本一样
  2. 默认继承权限,如果不指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理 (到底默认是public继承还是private继承,取决于子类而不是基类)

C语言和C++的struct区别

C语言中struct只能有内部变量,没有成员函数,没有访问权限的设定,不能继承

C++中嗯,上面的都可以....

静态变量(函数)和普通变量(函数)的区别

  1. 静态全局变量依然在静态存储区域,它限制了变量的作用域,如一个源程序中由多个源文件组成,普通全局变量可以在任何文件中使用,而使用static修饰的变量则只能在本文件中起作用
  2. 静态局部变量在函数中只初始化一次,之后再次调用次函数,不会在进行初始化
  3. 静态函数在内存只维持一份信息,而普通函数每次调用都会有一个拷贝

野指针和悬空指针

野指针

是未初始化的指针。指针超过了变量了的作用范围,比如b[10],指针b+11

悬空指针

指针指向的内存被释放了,但是没有让指针指向NULL

无论野指针还是悬空指针,都是指向无效内存区域(这里的无效指的是"不安全不可控"的指针

const知道吗?解释一下其作用

  1. const修饰类的成员变量,表示常量不可能被修改
  2. const修饰类的成员函数,表示该函数不会修改类中的数据成员,只能调用const的成员函数

关键字static的作用

  1. 函数体内: static 修饰的局部变量作用范围为该函数体,不同于auto变量,其内存只被分配一次,因此其值在下次调用的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值