类C语言有关操作
一、 数组定义
- (1)数组静态分配
- (2)数组动态分配
动态要地址
L.data = (ElemType*)malloc(sizeof(ElemType)*MaxSize);
二、C++中的参数传递
(1)传址方式
把实参的值传送给函数局部工作区相应的副本中,函数使用这个副本执行必要的功能。函数修改的是副本的值,实参的值不变
函数中m与n是作为a与b的副本,只会交换m与n的值,方法结束后,m与n的空间被释放,a与b的值不会交换。————形参发生改变,实参未发生改变。
(2)指针变量做参数
- 形参变化影响实参
函数中m得到p1的值,也就是a的地址,m也就是a的值等于3,同理n等于5,修改后a,b地址块中的值改变。
(3)指针变量参数
- 形参变化不影响实参
函数的作用是使m的值(a的地址)与n(b的地址)的值置换,但是a与b的值没有改变。
(4)数组名参数
- 传递的是数组的首地址
- 对形参数组所做的任何改变都将反映到实参数组中
**sub(a)**实际是传递了数组的首地址, (char b[])指的是指向此地址的数组,所以b数组改变,a数组也跟着改变。
(5)引用类型做参数
-
引用:它用来给一个对象提供一个替代的名字。
-
通过引用变量直接操作实参。
-
(1)传递引用给函数与传递指针的效果是一样的,形参变化实参也发生变化。
-
(2)引用类型作形参,在内存中并没有产生实参的副本,它直接对实参操作;而一般变量作参数,形参与实参就占用不同的存储单元,所以形参变量的值是实参变量的副本。因此,当参数传递的数据量较大时,用引用比用一般变量传递参数的时间和空间效率都好。
-
(3) 指针参数虽然也能达到与使用引用的效果,但在被调函数中需要重复使用“*指针变量名”的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。