关注分享主机优惠活动
国内外VPS云服务器

如何区分指针、数组和函数(指针数组和函数)

摘要:可以将相同的指针分析为以下指针,表明它是一种指针数组。 学习上述内容后,您可以区分指针,数组和功能。 让我们看一个复杂的例子。 在上述朋友之后,朋友可以使用小鸭子原理分析。 信号功能。

如果您无法立即分辨,请参差什么? 首先,让我们看一下标识符。 标识符是将特定实体识别为名称变量,常数,函数,短语等的符号。 以上六个语句具有六个标识信息:示例1、12,示例3,示例5和示例6。

学习原理:鸭子的原理(原始作者)。 鸭子的孩子从鸡蛋中孵化后,第一个活动是见她的母亲,母亲去了那里以及他追赶的地方。 鸭子的原理是谁是标识符的第一个组合,而类型是什么。 使用鸭子的原理分析上述六个陈述。 1。U8 * example1

exame1和 *,因此example1是指指针。

2,U8 *示例2 [3]

有关操作的优先级示例2 []因为它与[]合并在一起。组指针。

3. *u8(示例3)[3]

组合符号为()和[],优先级为() > [] > *。 () 充当分组(更高优先级)。 *example3 成为指针,因为 example3 首先被连接。 我们可以将(*example3)等同于一个“指针”,分析如下:

u8 (*example3)[3] 被理解为“u8 指针[3]”,表示 example3 是一个 u8。 指针数组类型。

4. u8 *example4()

这里的组合符号包括()和*。 example4() 是一个函数,因为 () 的优先级高于 *,并且 example4 首先与 () 组合。 可以分析一下。 example4() 的等效函数是:

u8 example4() *被理解为“u8*函数”,表明example4是一个返回类型为u8*的函数**。

5, u8 (*example5)()

这里的组合符号是()和()。 example5 是一个指针,因为它首先与和相结合。 example5可以认为是一个*指针,分析如下:

u8 (*example5)() 被理解为u8指针(),表示example5是一个返回类型的u8函数指针。

可能与u8指针()有关。 有些朋友很难理解这一点。 我们仔细看看:

u8 a;

a是一个u8类型变量,*a是一个u8类型指针

typedef struct狗

{

角​​色名称[20];

}dog_t;

dog_t my_dog;

my_dog是一个Dog_t类型结构体,*my_dog是一个Dog_t类型结构体指针

nnn是一个X型变量,*nnn可以被视为X型变量指针。

按照此原理:u8 exame5()是一个函数,u8(*example5)()是函数指针。

6,u8(*example6 [3])()

可以使用(),*,[],example6,[] array可以完成此处的耦合符号做到。 等exex6 []等于“ array”:

u8( * example6 [3])()as u8()()()()()()()()()()是一个指针数组。

在上述学习后,您可能已经学会了区分指针,数组和功能混合物,并查看复杂的示例。

void func)(int))(int); ”。 Essence

了解指针在计算机中的详细工作方式。

谈话很便宜,请告诉我代码! 让我们看以下代码。 两个变量data1和data_p在RAM中。 价值中间(程序执行后)。 重点。 作者:Li Wei Github:Liyinuoman2017

未经允许不得转载:主机频道 » 如何区分指针、数组和函数(指针数组和函数)

评论 抢沙发

评论前必须登录!