加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

struct args中的函数指针?

发布时间:2020-12-16 09:53:18 所属栏目:百科 来源:网络整理
导读:foo是一个包含5个标量变量(A,B,C,D,F)和一个数组(E)的结构.令我困惑的是f [0],f [1]和f [2]在这种情况下是什么以及这里发生了什么. int bar(struct foo *f){ f[1].C = f[0].B f[2].C; f[0].E[-1] = f[0].D; f[0].A = f[1].C;} f [0],f [1]和f [2]是否具有成
foo是一个包含5个标量变量(A,B,C,D,F)和一个数组(E)的结构.令我困惑的是f [0],f [1]和f [2]在这种情况下是什么以及这里发生了什么.

int     
bar(struct foo *f)
{
    f[1].C = f[0].B > f[2].C;
    f[0].E[-1] = f[0].D;
    f[0].A = f[1].C;
}

f [0],f [1]和f [2]是否具有成员变量的个别结构?有人可以解释一下吗?谢谢.

解决方法

是的,在这种情况下,f [0],f [1]等是struct foo类型数组的元素.

对我来说更有趣的是这一行:

f[0].E[-1] = f[0].D;

我没有意识到负面索引被允许,但是this question解释说数组索引只是指针数学,所以这是一种模糊的说法:

f[0].D = f[0].D;

据我所知,这基本上没用.

也很有趣:

f[0].C = f[0].B > f[2].C;

这会将f [0] .C设置为布尔值,通常不会与>进行比较.运算符,因此不同的C成员可能用于不同的功能.

考虑到这个功能的奇特性,我觉得你的困惑是有道理的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读