奇特的声明

作者: 田亢 | 来源:发表于2017-03-28 16:13 被阅读0次

c允许同时使用多于1个的修饰符,这就使得可以创建如下各种各样的类型

int board[8][8];//int数组的数组
int**ptr;//指向int的指针的指针
int *risks[10];//具有10个元素的数组,每个元素是一个指向int的指针
int (*rusks)[10];//一个指针,指向具有10个元素的int数组
int *oof[3][4];//一个3❎4的数组,每个元素是一个指向int的指针
int (*uuf)[3][4];//一个指针,指向3×4的int数组
int(*uof[3])[4];//具有4个元素的int数组的指针

弄清楚这些声明的诀窍便于理解使用修饰符的顺序。下面这些规则会让您对其有所了解:
1、表示一个数组的[]和表示一个函数的()具有相同的优先级,这个优先级高于简洁运算符*的优先级。这意味着下面的声明使得risks是一个指针数组,而不是一个指向数组的指针:

int*risks[12];

2、[]和()都是从左到右进行结合的。下面的声明使goods是一个由12个具有50个int值的数据构成的数组,而不是一个由50个具有12个int值的数组构成的数组:

int goods[12][50];

3、[]和()具有相同的优先级,但由于它们是从左到右结合的,所以下面的声明在应用方括号之前先将*和rusks组合在一起。这意味着rusks是一个指向具有10个int值的数组的指针:

int (*rusks)[10];

我们把这些规则应用于下面这个声明:
int off[3][4];
[3]具有比
更高的优先级,并且根据从左到右的规则,它的优先级比[4]高。因此,off是一个具有3个元素的数组。下面是[4],所以off的元素是具有4个元素的数组。*说明这些元素都是指针。int完成了该描述:off是一个3元素的数组,每个元素是由4个指向int的指针组成的数组。或者简单的说,它是一个3×4的指向int的指针数组。需要为12个指针留出存储空间。
现在来看看这个声明:

int(*uuf)[3][4];

圆括号使修饰符*具有更高优先级,所以uuf就是一个指向3×4的int数组的指针。需要为一个单个指针留出存储空间。
这些规则同样也产生下面的类型:

char*fump();//返回指向char的指针的函数
char(*frump)();//指向返回类型为char的函数的指针
char(*flump[3])();//由3个指针组成的数组,每个指针指向返回类型为char的函数

可以使用typedef建立一系列相关的类型

typedef int arr5[5];
typedef arr5*p_arr5;
typedef p_arr5 arrp10[10];
arr5 togs;  //togs是具有5个元素的int数组
p_arr5 p2;  //p2是一个指针,指向具有5个元素的int数组
arrp10 ap; //ap是具有10个元素的指针数组,每个指针指向具有5个元素的int数组

当把结构也带入这样的描述中,声明的可能性真的会变得很复杂

相关文章

  • 奇特的声明

    c允许同时使用多于1个的修饰符,这就使得可以创建如下各种各样的类型 弄清楚这些声明的诀窍便于理解使用修饰符的顺序。...

  • 不是声明的声明

    本人所写简书纯属个人观点,不宜过度解读。写作的初心是为了练手、练笔、练心,为了交友、交情(交流感情)、交心...

  • 声明声明

    Hello,宝宝们好,大家都喜欢看什么文章,小说什么的,可以告诉我啊,我可以做给你们的,或者喜欢什么图片,文字,背...

  • 奇特昆虫的奇特存在!

    大千世界,无奇不有。让我们来领略奇特昆虫的奇特形态吧! 其他此类文章,可添加微信公众号:zh...

  • 小心变异的新“碰词”

    文/高 旗 一个在派出所工作的警察朋友,向我讲述了他遇到的很奇特的“碰瓷”案例。 他首先声明说:“...

  • 阿太其人——读《命运》有感

    郑重声明:文章为原创首发,文责自负。 蔡崇达,闽南人,资深媒体人、作家。他的创作轨迹奇特,低产却畅销。他的回答是:...

  • 奇特的《奇特的一生》

    这本书很奇特,跟书名一样。而且不光是主人公的一生奇怪,整本书都很奇特。 第 1 章讲这本书的目的。本书的目的其实并...

  • 第三章 神奇感应 灵异初显

    首先声明,以上及以下的事情虽然奇特,但都是我的亲身经历,没有半点掺假。我所写的都是发生在我身边的事。 我的初中是在...

  • 【全职妈妈】绘本故事《奇特动物园》目录

    【内容简介】 在很远很远的地方,有个奇特小镇。奇特小镇里有个奇特动物园,那里的动物都很奇特,它们不仅会说话...

  • 奇特

    你 奇特 你奇特的 在人们之上的奇特 精神随机法则 狂欢的叫喊 沿紫色的道路 黑色 我呼吸的蓝色天空 梦 - 在宁...

网友评论

    本文标题:奇特的声明

    本文链接:https://www.haomeiwen.com/subject/lvujottx.html