一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

搜索
查看: 4701|回复: 18

C语言指针少见的几种表达式

[复制链接]
发表于 2014-10-24 13:05 | 显示全部楼层 |阅读模式
第一个8 A! Q4 f* P% S+ j9 V& U5 g" }$ b& Q
int(*(*func)[5])(int *p)
% b$ f; m, ^$ d" y$ h$ f; q. z定义了一个函数指针数组,这个指针指向有5个函数指针的数组,这个函数的参数为int * p,返回值为int类型的  H" a4 N# }2 Q/ O* `, \  P$ i
第二个
/ @& P2 _  ~" Q- A4 jint(*(*func)(int *p))[5]$ v& P* k9 j" q/ Z7 a* U
定义一个函数指针func,指向的函数为:参数类型为int *p,返回值为5个元素大小的整形数组
 楼主| 发表于 2014-10-24 13:07 | 显示全部楼层
int (*func)(int *p);9 s* h, b$ \* S! V* A( C- u
  J. N) W* Y* E5 U
  首先找到变量名func,外面有一对圆括号,而且左边是一个*号,这说明func是一个指针;然后跳出这个圆括号,先看右边,又遇到圆括号,这说明(*func)是一个函数,所以func是一个指向这类函数的指针,即函数指针,这类函数具有int*类型的形参,返回值类型是int。
3 c: i( \8 T4 P, |1 h
& y! Q8 F+ M- s1 i  int (*func[5])(int *);
1 A7 r/ X2 t  V3 X  U$ `  ]
0 B8 g6 A0 x4 }' l! j  func右边是一个[]运算符,说明func是具有5个元素的数组;func的左边有一个*,说明func的元素是指针(注意这里的*不是修饰 func,而是修饰func[5]的,原因是[]运算符优先级比*高,func先跟[]结合)。跳出这个括号,看右边,又遇到圆括号,说明func数组的元素是函数类型的指针,它指向的函数具有int*类型的形参,返回值类型为int。值类型为int。
回复

使用道具 举报

 楼主| 发表于 2014-10-24 13:20 | 显示全部楼层
这些指针请问有多少人看不懂的,我是其中一个。
回复

使用道具 举报

发表于 2014-10-24 13:33 | 显示全部楼层
比较基础的指针应用了,搞过linux的一眼都看的明白。这个都不会应用应该说是程序白痴吧

点评

这么说就不好了,如果不能像比尔盖茨那样编个dos环境出来,岂不是【白吃】  发表于 2014-10-24 17:09
回复

使用道具 举报

 楼主| 发表于 2014-10-24 14:11 | 显示全部楼层
没用过这种方式,只有你用过是吧。* Q) P$ @2 l  @
没用过就没用过,好多人也是一样,没什么白痴不白痴的。
回复

使用道具 举报

发表于 2014-10-24 14:17 | 显示全部楼层
老实讲,看不懂。虽然听说指针是C的精华,但我几乎没用过,没做过什么高级的东西。不过看不懂就说人家白痴,我觉得过了,4楼的,把你的本事露一露啊?
回复

使用道具 举报

 楼主| 发表于 2014-10-24 14:29 | 显示全部楼层
hysy 发表于 2014-10-24 13:33
/ U& V' T) n( y比较基础的指针应用了,搞过linux的一眼都看的明白。这个都不会应用应该说是程序白痴吧

% {: P  |; X+ d! k) ?  q4 Z很多人都是不谦虚的,懂一点就看不起别人,你也是经历这个阶段的。% E' C' X; U! {/ h3 O2 Z/ w
我查看了一下你也没什么有用的东西发上来。
7 z+ i4 V% i) i4 `; P
- ?( [' ^) U# N  P
回复

使用道具 举报

发表于 2014-10-24 15:12 来自手机 | 显示全部楼层
记得老师讲过,这些指向某类型函数的指针变量跟数组一起使用会很好用。好像能用于“一个按钮有多种功能”这类型情况。
回复

使用道具 举报

发表于 2014-10-24 15:24 | 显示全部楼层
指针用的好,写程序跟简单方便。支持楼主分享,总是有个不会到会,不知道到知道的过程。
回复

使用道具 举报

发表于 2014-10-24 16:26 | 显示全部楼层
头疼指针,只会用最简单的,还好不是职业编程,玩玩还是足够了
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-20 12:14 , Processed in 0.042619 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表