首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >考虑到C中函数的“数据类型”?

考虑到C中函数的“数据类型”?
EN

Stack Overflow用户
提问于 2012-07-11 01:31:11
回答 4查看 87关注 0票数 2

我将对此相当含糊,我很抱歉。这是家庭作业,我想学点东西,所以我不是真的想要答案,而是想要一个解释。问题是

代码语言:javascript
运行
复制
  What is the datatype of thisThing

这不是实际的代码,而是一个类似的示例

代码语言:javascript
运行
复制
  int* (*thisThing[])(int*, int*) = {someFunction1, someFunction2}

据我所知,thisThing的“数据类型”只是一个整数。然而,我从未见过函数返回类型被称为“数据类型”。这是有原因的吗?我知道在C中有指向函数的指针;这些指针与变量指针没有区别吗?任何解释都是非常感谢的!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-11 01:33:46

thisThing的“数据类型”只是一个整数

它实际上是一个函数指针数组,其中指向的函数是:

代码语言:javascript
运行
复制
int *fun(int *, int *);

你应该调查一下spiral rule

票数 3
EN

Stack Overflow用户

发布于 2012-07-11 01:36:56

thisThing是一个指向的指针数组(函数接受两个指向整数的指针作为参数,并返回一个指向整数的指针)。你可以从"K&R“C书中pl.read复杂声明的章节。

票数 0
EN

Stack Overflow用户

发布于 2012-07-11 01:41:02

变量a是一个int

代码语言:javascript
运行
复制
int a;

int数组中的变量b

代码语言:javascript
运行
复制
int b[] = {3, 4};

变量c是指向int的指针

代码语言:javascript
运行
复制
int *c = &a;

您还可以组合类型,例如,d是指向int的指针数组

代码语言:javascript
运行
复制
int *d[] = {c, b}

变量e是指向返回int的函数的指针,并将指向int的指针作为单个参数:

代码语言:javascript
运行
复制
int (*e)(int*);

那么,thisThing的类型是什么呢?显然不是简单的int..。

代码语言:javascript
运行
复制
int* (*thisThing[])(int*, int*) = {someFunction1, someFunction2}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11418727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档