数组指针(指向数组整体)
数组a【10】,a是数组首元素地址,&a是代表整个数组地址,但他们的值一样
定义指针时与int *p不同,指针指向整个数组。
指针+1则是数组
引申到二维数组:
与一维数组不同,+1表示下一个(一维数组)
a+i为一维数组(整个数组)地址,*(a+i)为一维数组数组名(地址)这点最不好理解
返回值为指针的函数不能返回局部变量的地址
可以用static解决
创建堆区空间
栈区内存小,无法保存超长字节数据,可以将数据存在堆区调用。
引用函数mallco与realloc,申请与扩充空间。
使用实例
上述第二段可以直接调用realloc函数,就不需要进行重开长空间及复制等操作,并且会自动释放p
指针所申请堆空间。
realloc(q ,n * sizeof(int))
函数指针
函数入口地址(函数名),函数第一条指令地址
定义:
初始化及赋值(其中参数a、b可以去掉留下类型名)
可以用指针调用函数
降低程序耦合性,解耦合。
引申作用:
回调函数:div3与div5,可以在sort函数中调用,以应对不同需求时按需调用回调函数。