错题集
1.定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?
答案:int (*(*F)(int, int))(int)
解析:首先,一个函数指针,指向的函数有两个int形参,这个就是(*F)(int, int),这返回的是一个指针
返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数;把上面的结果当成一个指针,相当于再做一次上面的步骤,所以结果为:int (*(*F)(int, int))(int)
2.下面哪个指针表达式可以用来引用数组元素a[i][j][k][l]()
答案:*(*(*(*(a+i)+j)+k)+l)
解析:
a:整个四维数组的地址
*(a+i) = a[i]
*(a+i)+j = a[i] +j
*((a+i)+j) = a[i][j]
*((a+i)+j)+k = a[i][j]+k
*( *((a+i)+j)+k ) = a[i][j][k]
*( *((a+i)+j)+k )+l = a[i][j][k]+l
*( *( *((a+i)+j)+k )+l ) = a[i][j][k][l]
3.采用多路复用I/O监听3个套接字的数据时,如果套接字描述符分别是:5,17,19,则
select(int maxfd,struct fd_set* rdset,NULL,NULL)中的maxfd应取为()
答案:20
解析:Maxfd是三个套接字描述符中最大数字加上1
4.下面代码的输出结果是()
int main(){
int pid;
int num