今天主要讲解的是函数的压栈与出栈
1. 要实现一个数组的逆置,用栈的压栈出栈观点:
reverseArr(int *parr,int i,int len)
{
if(i != len-1)
reverseArr(parr,i+1,len);
printf("%d ",parr[i]);
}
原理:利用栈的特点:先进后出,只要不到数列最后一个持续入栈,到达后即开始出栈。
2. 数组的访问:数组的访问主要分为下标法和偏移法
(1) printf(“%d ”,arr[1]);
(2) printf(“%d ”,*(arr+1));
(3) printf(“%d ”,*(1+arr));
(4) printf(“%d 1[arr]);
3. 栈上的空间是不可返回的,堆上的空间是可以返回的
由已知我们知道,这一段函数是栈上的空间,返回只能返回地址而不能返回空间,因此要实现返回可以将其改写成堆上的空间,即可以实现返回
此种方式即为合法的