关于指针和右左法则练习

来源:互联网 发布:备案好的域名买卖 编辑:程序博客网 时间:2024/06/07 07:47

1、一个整型数   int a;

2、一个指向整型数的指针:int *a;

3、一个指向指针的指针,它指向的指针是一个整型数 int **a;

4、一个有10个整型数的数组 :int a[10];

5、一个有10个指针的数组,该指针是指向一个整型数:int *a[10];

6、一个指向有10个整型数组的指针:(*a)[10];

7、一个指向函数的指针,该函数有一个整型参数并返回一个整型数(*a)(int);

8、一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型:int  (*a[10])(int);


右左法则简述;从变量开始先向右看,遇到圆括号就向左看,[]是数组,()是函数。


练习题目:

int *( *( *arr[5])())();  

解析:arr这是一个指针数组,数组里的元素是指针,指针指向一个函数,该函数形参为空,返回值为指针,指向一个函数,形参为空,返回值为int *。

  
float ( * ( *b()) [] )();

解析:b这是一个函数,函数返回值为空,返回值为指针,指针指向一个数组,数组里元素为指针,指针指向一个函数,函数形参是空,返回值是float。       


void * ( *c) ( char a, int (*b)());        

解析:c这是一个指针变量,指向一个函数,函数形参有两个,一个是字符型的变量a,另一个是整型函数指针变量,返回值为void *。

float ( * ( * e[10]) (int *) ) [5];   

解析:e这是一个数组,数组里是指针,指向一个函数,函数形参为int *,返回值是一个指针,指向一个数组,数组的元素类型为float。

0 0
原创粉丝点击