六.数组的地址
数组是由很多个元素组成的,我们来看这个例子:
我们可以看到数组的地址和数组首元素的地址一样,但是他们就真的一样吗?
我们来看下面一个例子:
我们看到,对数组首元素地址加一的时候跳过了四个字节,对数组地址加一的时候,跳过了20个字节,所以这就是他们的差别,控制的范围不一样,那我们又该怎样去存储这个数组的地址呢
七.数组指针
我们存储一个数组指针,比如上面的例子,我们不可能用int*来存储吧,int*只能控制四个字节,但是数组指针要控制更大的范围(由数组元素大小和多少决定)
所以我们需要一种新的变量:
通过上面的这种类型,就可以存储数组的地址,我们来看一个示例:
我们可以看到,两个打印出来的值是一样的
八.存储地址的指针函数
大家可能会疑惑,为什么要存函数的地址
其实,在我们使用一些特定的库函数时,就会用到,比如说qsort函数(这里不讲解)
我们先看一个很普通的函数调用
这个例子就是直接调用我们定义的函数,那我们要存储函数的地址,我们就可以用&符号
例子:
&add
这样就得到了函数的地址,那我们应该怎样来存储呢,我们需要一个新的类型来存储
我们用一个实例来看看:
我们可以看到,我们使用地址名称来调用函数,也可以实现