数据结构(一)——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具体方法

猜你喜欢

转载自blog.csdn.net/qq_41882686/article/details/106501259