注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

融智技术学院

融智技术学院163分站,为广大好友提供更多的帮助

 
 
 

日志

 
 

【C语言每日一问】:这2个函数指针声明有什么不同?  

2014-04-03 13:15:07|  分类: C语言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

问题:

  • int *(*const fun[])(int argc, char **argv)

  • const int *(* fun[])(int argc, char **argv).

第一个常量数组函数指针返回整形指针吗?

回答:

第一个是只读数组指针(例如,你无法改变fun[i])指向一个函数,返回一个int和一个char**,返回一个指向int的指针

第二个很类似,除了你可以改变fun[i],但是函数指向返回一个整型只读指针。

所以,简而言之

  • /* First declaration 
  • int *(*const fun[])(int argc, char **argv)
  • */
  • int arg1;
  • char **arg2;
  • int *example = (*fun[i])(arg1, arg2);
  • *example = 14; /* OK */
  • example = &arg1; /* OK */
  • fun[i] = anoter_function; /* INVALID - fun[] is an array of read-only pointers */
  •  
  • /* Second declaration 
  • const int *(* fun[])(int argc, char **argv)
  • */
  • const int *example2 = (*fun[i])(arg1, arg2);
  • fun[i] = another_function; /* OK */
  • *example2 = 14; /* INVALID - fun[i] returns pointer to read-only value. */
  • example2 = &arg1; /* OK */

 

温馨提示:您的支持与理解,是我们工作最大的动力。如果您是从网上购买的图书,请在对应的网店,给予本书一个好评,我们将衷心感谢!!!
以下是《轻松学C语言》对应的购书评论地址:
当当网http://product.dangdang.com/23246575.html
亚马逊http://www.amazon.cn/dp/B00CIXGTOS
京东网http://item.jd.com/11235318.html

  评论这张
 
阅读(8)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017