几天没有写博客了,怎么说呢?这让我总感觉缺点什么,心里空落落的,你懂吧!
好了,接下来开始我们今天的正题!
我们先来看看代码:
首先创建了一个整型变量a,将a的地址取出来存放在p中,之后我们又创建了一个指针变量pp来取出p的地址进行存放,右边一个*表示pp是一个指针变量,左边的int*则表示pp所指向的对象类型是int*的。那么我们通过对pp的解引用也改变了a的值。
什么是指针数组呢?我们可以类比得出,前面我们又整型数组:是存放整型的数组,字符数组:是存放字符的数组,那么指针数组:就是存放指针的数组了!指针数组的每个元素都是⽤来存放地址(指针)的。

p是数组指针变量名
根据数组名是数组⾸元素的地址这个规则,⼆维数组的数组名表⽰的就是第⼀⾏的地址,是⼀ 维数组的地址。那就意味着⼆维数组传参本质上也是传递了地址,传递的是第⼀ ⾏这个⼀维数组的地址,那么形参也是可以写成指针形式的。![]()
我们看见确实可以实现,总结:⼆维数组传参,形参的部分可以写成数组,也可以写成指针形式
函数有地址吗?![]()
那么我们确实打印出来了地址,所以函数是有地址的,函数名就是函数的地址,当然也可以通过 &函数名的方式获得函数的地址。如果我们要将函数的地址存放起来,就得创建函数指针变量,函数指针变量的写法就和数组指针非常类似。
可以看见两种写法都是可以的哈,
分享两个有趣的代码:
1 (*(void (*)())0)();2 void (*signal(int , void(*)(int)))(int);
你知道它们各自代表的含义吗?
今天就到这里咯,咱们明天见,拜拜!