看上去你要写个分配空间的函数 f 。
1. 标识符 pArr 对应一个一般是4字节或8字节的指针变量。这个变量用于存储 struct Student * 类型的内存地址。
2. 函数调用 f(pArrr) 是将该变量存储的内容传递给 f ,也就是传递那个 struct Student * 类型的地址进去。但因标识符作用域的关系,f 是不知道这个指针变量的内存位置的,它操作的只是栈空间内的一个副本指针变量而已。在这种情况下,以正常手段 f 无法修改 pArr 这个指针变量的值。
3. 函数调用 f(&pArr) 是将该变量在内存中的地址传递给 f ,正是那个 struct Student ** 类型的地址值。f 有了这个地址,对这个地址中的数据进行操作,就可以达成访问或修改 pArr 这个指针变量的效果。