关于C语言的复杂申明学习

xiaoxiao2021-02-28  109

右左法则:从声明的变量开始,先向右看,再向左看,再向右看,再向左看 。。。

 

如果向右看的时候遇到“)”,则一直向左看,直到遇到“(”跳出这层括号。然后再重复向右看,向左看。

有一个很不错的面试题可以拿来当一个例子:

a) 一个整型数

int a;

b)一个指向整型数的指针( A pointer to an integer)

int *a;

c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an integer)

int **a;

d)一个有10个整型数的数组( An array of 10 integers)

int a[10];

e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)

int *a[10];

f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)

int (*a)[10];

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)

int (*a)(int);

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )

int (*a[10])(int);

基本上上面的如果全都能用右左法则分析出来,那么一般的复杂申明就没问题啦!

转载请注明原文地址: https://www.6miu.com/read-21502.html

最新回复(0)