对于一些复杂的指针类型,往往判断起来比较困难,如果能清晰的认识运算符的优先级,那么理解这些类型时就不容易出错。
例如:
[]的优先级是高于*的,
因此,int *ap[]表示ap是一个元素为int指针的数组;而int (*ap)[]表示ap是一个指向int数组的指针;
又如:
()的优先级是高于*的,
因此,int *fp()表示fp是一个函数,返回int*;而int (*fp)()表示fp是一个函数指针,它指向的函数返回int。
对于一些复杂的指针类型,往往判断起来比较困难,如果能清晰的认识运算符的优先级,那么理解这些类型时就不容易出错。
例如:
[]的优先级是高于*的,
因此,int *ap[]表示ap是一个元素为int指针的数组;而int (*ap)[]表示ap是一个指向int数组的指针;
又如:
()的优先级是高于*的,
因此,int *fp()表示fp是一个函数,返回int*;而int (*fp)()表示fp是一个函数指针,它指向的函数返回int。