在C语言中,*,()、[]运算符的优先级别要高于*指针运算符。
int *p;//p为指向整型数据的指针变量
int *p[4];//p为一个指针数组,里面有4个元素,每个元素都是一个指向整型变量的指针。因为[]运算符的优先级别高,因此p首先与[4]结合,也就是说p是一个数组名,接下来再看该数组中的元素究竟是什么,从前面的int *可以看出数组中的元素是指向整型变量的指针。
int (*p)[4];//p是一个指针,它指向的是一个含有4个整型元素的数组。因为()运算符优先级别高,因此p先与*结合,这样就确定了p肯定是一个指针,接下来的工作就是看看究竟p这个指针指向什么,抛开(*p)不看,假如是int a[4]的话,那大家都会知道这个数组a是一个包含4个整型变量元素的一维数组,因此指针p就是指向这样一个数组——包含4个整型元素的数组。
int *p();//p是一个函数名称,该函数没有任何参数,该函数返回一个指针,该指针指向一个整型变量。同样,先从优先级来分析,因为()的优先级别高,因此p首先与()结合成p( ...
阅读(1852) | 评论(0) | 转发(0) |