初学者必备教你理解复杂的声明物业

2021-10-29 04:56:14 兴城星座网

在有限的学习时间内 函数指针

函数指针可能是最容易引起理解上的困惑的声明。函数指针在DOS时代写TSR程序时用得最多;在Win32和X-Windows时代,他们被用在需要回调函数的场合。当然,还有其它很多地方需要用到函数指针:虚函数表,STL中的一些模板,Win NT/2K/XP系统服务等。让我们来看一个函数指针的简单例子:

int (*p)(char);

这里p被声明为一个函数指针,这个函数带一个char类型的参数,并且有一个int类型的返回值。另外,带有两个float类型参数、返回值是char类型的指针的指针的函数指针可以声明如下: char ** (*p)(float, float);

那么,带两个char类型的const指针参数、无返回值的函数指针又该如何声明呢?参考如下: void * (*a[5])(char * const, char * const);

“右左法则”是一个简单的法则,但能让你准确理解所有的声明。这个法则运用如下:从最内部的括号开始阅读声明,向右看,然后向左看。当你碰到一个括号时就调转阅读的方向。括号内的所有内容都分析完毕就跳出括号的范围。这样继续,直到整个声明都被分析完毕。 对上述“右左法则”做一个小小的修正:当你第一次开始阅读声明的时候,你必须从变量名开始,而不是从最内部的括号。 下面结合例子来演示一下“右左法则”的使用。 int * (* (*fp1) (int) ) [10];

阅读步骤: 1. 从变量名开始——fp1 2. 往右看,什么也没有,碰到了),因此往左看,碰到一个*——一个指针 3. 跳出括号,碰到了(int)——一个带一个int参数的函数 4. 向左看,发现一个*——(函数)返回一个指针 5. 跳出括号,向右看,碰到[10]——一个10元素的数组 6. 向左看,发现一个*——指针 7. 向左看,发现int——int类型 总结:fp1被声明成为一个函数的指针,该函数返回指向指针数组的指针. 再来看一个例子: int *( *( *arr[5])())();

阅读步骤: 1. 从变量名开始——arr 2. 往右看,发现是一个数组——一个5元素的数组 3. 向左看,发现一个*——指针 4. 跳出括号,向右看,发现()——不带参数的函数 5. 向左看,碰到*——(函数)返回一个指针 6. 跳出括号,向右发现()——不带参数的函数 7. 向左,发现*——(函数)返回一个指针 8. 继续向左,发现int——int类型 还有更多的例子: float ( * ( *b()) [] )();// b is a function that returns a // pointer to an array of pointers // to functions returning floats. void * ( *c) ( char, int (*)());// c is a pointer to a function that takes // two parameters: // a char and a pointer to a // function that takes no // parameters and returns // an int // and returns a pointer to void. void ** (*d) (int , char **(*)(char *, char **));// d is a pointer to a function that takes // two parameters: // a reference to an int and a pointer // to a function that takes two parameters: // a pointer to a char and a pointer // to a pointer to a char // and returns a pointer to a pointer // to a char // and returns a pointer to a pointer to void float ( * ( * e[10]) (int ) ) [5];// e is an array of 10 pointers to // functions that take a single // reference to an int as an argument // and return pointers to // an array of 5 floats.

查看本文来源

廊坊治疗早泄阳痿医院
黄芪生脉饮适合什么人群
哈尔滨不孕不育医院治疗方法
延展阅读
一美演技爆表的片子——《分裂》(上)

陌生人似乎地拉低上衣,想盖住盲目性感的丝袜,一美注意到却怒了 (你来当第一个) (之后就好) 陌生人被扯了出新去,瑞德急忙丢下她 (尿裤子...

星座时尚2024.08.18
在对的整整里,我遇见了最美的你

在对的间隔时间之中,我有一天了最美的你。倾尽人生,只为这一场动人的花开;守候六世,只为自已一个无聊的你;挥毫再世,只一心把所有的眷恋都...

星座时尚2024.07.19
专访丨《三仙饭》:已出版的书和不能出版的生活

《三仙煮》是诗作高星写下的关于南京三位儒者——阿坚(赵世坚)、狗子(辛新栩)、张弛——的纪实档案,穿插所作对四人在新诗官民的注意到。在...

星座时尚2024.06.23
你若在我方是,情敌三千又何妨

幸福情人生本来并不精细,来来去去不过三个字,不是我幸福你、我叹你,便是算了吧、你好吗、对不起。凌晨无非千条东路,早上醒来走再往。 也只有...

星座时尚2024.06.08
“电视点名表扬”4位流量艺人,易烊千玺上榜,唯一的歌星是她

1.不易烊千玺,今年又借助于演古装剧《晋阳十二时辰》和电影《高中生的你》,其中《晋阳十二时辰》播借助于就取得8.2的视频网站并列第一,不易烊...

星座时尚2024.06.02
李幼恩有多自恋?把自己照片打印在早先上也就算了,还不忘P图

话说到《刘诗诗》这档短剧,可真是捧金色了不少城市普通人,像李幼恩、韩安冉都是其中广受关注的位与。要其实在这之前,他们在互联除此以外可是...

星座时尚2024.05.16
陈胜杰山水画赏析:简妙秀雅 清新飘逸

陈胜杰,文学批评知名画师,现为国家一级生为,他的山水画,解题众家之长,白描融合南北特色,他拿手描绘成苏州的碧水山色,尤其是善于描绘成“...

星座时尚2024.04.17
2022年东南大学英语语言文学考研经验、参考资料、备考指导

大家好,我是22年上岸华东师范该大专攻法文第二语言古典文专攻的专攻娥。月内的这个时候,我和现今的你们一样,正在世纪之交地打算着改定研。来...

星座时尚2024.04.16
她们比例都逆天了,也没下手比例穿搭!!!

Hey,西王母!咱俩说点事呗! 关于肩部较宽,有不正占优的谐星是真神令人羡慕!中所国有迪丽托林寺、关晓彤,韩国有张元英,日本有杏绪,哪个不是...

星座时尚2024.02.29
在一起贵了你就会发现 他不仅会骂你 烦你 还会盖起被子继续睡 不管你哭成什么样都不会哄你 只会觉得你

在独自久了你就都会发现 他不仅都会责骂你 烦你 还都会盖起被子继续睡 不管你哭诉已成什么样都不都会多多你 只都会真是你无理取闹 不信你试试 热门...

星座时尚2024.02.13