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

“char(* a)[12]”是什么意思?

发布时间:2020-12-16 10:52:21 所属栏目:百科 来源:网络整理
导读:这是C标准吗? 解决方法 因为C中的声明遵循运算符优先规则(即在间接之前计算数组预订),所以需要parens来声明指向数组类型的指针. 在许多用例中,使用普通char *并没有任何实际好处,除了它是一种强制数组大小的方法,特别是当用作函数参数时: void foo(char ba
这是C标准吗?

解决方法

因为C中的声明遵循运算符优先规则(即在间接之前计算数组预订),所以需要parens来声明指向数组类型的指针.

在许多用例中,使用普通char *并没有任何实际好处,除了它是一种强制数组大小的方法,特别是当用作函数参数时:

void foo(char bar[42]);

相当于

void foo(char *bar);

并接受任何char *,而

void foo(char (*bar)[42]);

只接受指向大小为42的数组的指针.

由于在后一种情况下访问bar的元素很麻烦,所以在函数体中立即定义等效的char *可能是个好主意.

char *baz = *bar;

这样你就可以使用直接订阅baz [13]而不是(* bar)[13].

(编辑:李大同)

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

    推荐文章
      热点阅读