首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int(*函数)(int,int)和int*函数(int,int)之间的区别

int(*函数)(int,int)和int*函数(int,int)之间的区别
EN

Stack Overflow用户
提问于 2013-11-17 10:39:19
回答 3查看 8.3K关注 0票数 0

我正在学习C的指针,并且从“Deitel”一书中,我没有得到int(*function)(int,int)int*function(int,int)在函数表示时的区别。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-17 10:54:55

C中阅读类型的经验规则:

  1. 从您定义的标识符开始

代码语言:javascript
复制
- in `int(*function)(int,int)`, "`function` is a..."
- in `int*function(int,int)`, "`function` is a..."

  1. 向右阅读,直到到达行尾或结束括号为止。

代码语言:javascript
复制
- in `int(*function)(int,int)`, you hit the parenthesis immediately.
- in `int*function(int,int)`, "... function that takes two parameters of type `int` and `int`..."

  1. 从你开始的地方往左看

代码语言:javascript
复制
- in `int(*function)(int,int)`, "... pointer to ..."
- in `int*function(int,int)`, "... that returns a pointer to `int`."

  1. 如果由于命中结束括号而停止,请按照步骤2和步骤3,再次从结束括号开始,然后返回到其相应的开始括号。

代码语言:javascript
复制
- in `int(*function)(int,int)` we only read `(*function)` so far, so we continue: "... function that takes parameters of type `int` and `int`..." and backing up, "... that returns an `int`"
- we hit the end of the line in the other one.

把这一切结合在一起:

int(*function)(int,int)

function是指向一个函数的指针,该函数接受两个类型为intint的参数,后者返回int

int*function(int,int)

function是一个函数,它接受intint类型的两个参数,并返回指向int的指针。

票数 6
EN

Stack Overflow用户

发布于 2013-11-17 10:41:34

第一个是指向函数的指针,它接收两个int参数,第二个只是返回指针到int并接收两个int参数的函数。它是两个非常不同的编程实体。首先是数据类型,其次是代码(函数)。

票数 3
EN

Stack Overflow用户

发布于 2013-11-17 10:42:39

第一个是指向返回int的函数的指针。第二个是返回指向int的指针的函数的声明。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20029686

复制
相关文章

相似问题

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