各种指针的定义:
一个整型数:int a;
一个指向整型数的指针:int *a;
一个指向指针的指针,它指向的指针指向一个整型数:int **a; (二级指针)
一个有10个整型数的数组:int a[10];
一个有10个指针的数组,每个指针指向一个整型数:int *a[10]; (指针数组)
一个指向有10个整数的数组的指针:int (*a)[10]; (数组指针)
一个指向指针的指针,被指向的指针指向一个有10个整型数的数组:int (**a)[10];
一个指向数组的指针,该数组有10个整型指针:int *(*a)[10];
一个指向函数的指针,该函数有一个整型参数并返回一个整型数:int (*a)(int);
(函数指针) 字符型 char (*a)(char);//自己的猜想
10.一个有10个指针的数组,每个指针指向一个函数,该函数有一个整型参数并返回一个整型数:
*a[10] (*a[10])() int (*a[10])(int);
11.一个函数的指针,指向的函数的类型是有两个整形参数并且返回一个函数指针的函数,返回的函数指针指向有一个整型参数且返回整型数的参数:int (*(*a)(int , int))(int);
前面的几个都是基础的一些指针方面的内容,都相对容易掌握了解。
5是(指针数组) 在此基础进行小改 7 ;即符号的优先级的考虑 ()的优先级大于*
6是(数组指针)在此基础进行小改 8;
9是一个函数指针:函数名就是地址==》数组名就是地址
函数指针是指针,int (*f)(int , int);
函数指针函数是函数
指针函数是函数,int* f(int , int);
函数指针函数本质上是:指针函数==》int* a(int , int);
如下图:
附带一个老哥的讲解:
我对第11个不是很理解;个人理解如下,如果理解有误,望大佬指点
第一次记录学习的博客
师承--抖音上官社长(上官可编程)