网易指针题,出现了(*),求解答到底什么意思

网易原题解释下面指针
a:int *ptr[n]
b:int (*)ptr[n]
c:int *ptr()
d:int (*)ptr()
e:int(*((*ptr(int,int))))(int)
#网易#
全部评论
特别想知道a与b,c与d的区别。在vs里写(*)划着红线都没法自己实现
点赞 回复
分享
发布于 2017-09-09 17:32
是啊 。。。我编译器都报错这么写 不会是让我们写是错误的吧
点赞 回复
分享
发布于 2017-09-09 17:49
滴滴
校招火热招聘中
官网直投
网易的简历挂了, 也没能做到题. 也写写看, 希望大佬们能指点一下 a:int *ptr[n] // ptr是一个二维数组, 类似于ptr[][] b:int (*)ptr[n] // 括号中带*的实在看不懂, 但是感觉和第一个类似啊 // 看过d之后, 感觉题目可能想说int (*ptr)[], 这样与上面可以对比一下 c:int *ptr() // ptr是一个函数, 这个函数返回值是一个int* // 有种类似的是int (*ptr)() 这时ptr是一个函数指针, // 返回值是一个int d:int (*)ptr() // 括号中带*的实在看不懂, 可能想说的是int (*ptr)()吧, e:int(*((*ptr(int,int))))(int) // 这个就更烦了, 首先, 这个ptr是个函数指针, // 这个函数的输入是两个int变量, // 输出类似这样 int (*p)(int), 也是一个函数指针 // 不过这个函数指针的代表一个参数是int,返回值是int的函数
点赞 回复
分享
发布于 2017-09-09 18:22
e:int(*((*ptr(int,int))))(int),多了个括号(原题就是多的),和int(*(*ptr(int,int)))(int)应该一样,先看(*ptr(int,int)),先往右结合(int,int),说明ptr是个函数,再往左结合*说明返回值是指针a,出括号又遇*,说明这个指针a指向一个指针b,这个指针b往右遇(int)说明指针b是一个函数指针,往左遇int说明函数指针返回值为int。 总结:声明一个函数ptr,参数为两个int型返回值为一个二级指针,二级指针指向一个函数指针,函数指针的参数是一个int型,返回值是int。 应该没错,欢迎评论
点赞 回复
分享
发布于 2017-09-10 09:27

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务