C语言进阶--Day2

今天主要讲解的是函数的压栈与出栈

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. 栈上的空间是不可返回的,堆上的空间是可以返回的

由已知我们知道,这一段函数是栈上的空间,返回只能返回地址而不能返回空间,因此要实现返回可以将其改写成堆上的空间,即可以实现返回

此种方式即为合法的

原文地址:https://www.cnblogs.com/Cucucudeblog/p/9726393.html