数据结构(一)——C++基础

作为《数据结构C++语言描述》的草稿笔记,目的是通过书上的代码理解C++的编写逻辑。

1. 函数返回数组问题 
C++不允许函数返回一个数组,而是可以返回数组类型的指针。大概是返回数组需要占用太多的性能和空间。比如任意一个排序,传入函数的参数为数组的指针,在函数体内为数组排好序,返回数组指针。整个过程流畅而简洁。
Java可以直接传入数组参数和返回数组,但其内部逻辑仍然是传入数组的地址和返回数组的地址,在函数内部期间并没有任何数组的复制发生。这使得Java更符合编程人员的逻辑,隐藏了运行的内部逻辑。

2.数组初始化问题(变量初始化同理)
C++:
a. 全局数组:未初始化, 默认为0
b. 局部数组: 未初始化, 默认为随机数.
c. 局部数组使用初始化语句部分初始化,比如
int array[10] = {1, 2, 3};
未初始化部分为0.
d. 局部数组未初始化,逐个赋值,未赋值部分为随机数.
int array[10];
int array[0] = 1;
Java:
局部变量: 未初始化时,不可调用.
类的成员变量: 初始化为默认值.

3. 动态分配的空间不释放问题
C++:
不执行delete,在进程结束之前,空间一直处于被占用状态,在main函数执行完,进程释放所用占用的内存,包括没有delete的部分。
Java:
垃圾回收机制赛高!

4. 纯虚函数、虚函数和具体函数
C++纯虚函数 = Java抽象方法
C++虚函数+具体函数 = Java具体方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值