繁体   English   中英

这个C代码中的*是什么意思?

[英]What does *it in this C code mean?

我需要一些帮助来理解以下C代码:

可以说我的结构如下:

typedef struct
{
   char *letter;
   int dataSize;
   int Number;
}Page;

然后 :

我在同一行的下一行中,假设x是一个定义的变量:

Page *window[x], *it = 0 ;

我想知道它在做什么。

*表示“指针”。 如果您正在编写C代码,则应该知道这一点。 否则,您确实需要获得一些基本的教程或入门文本。

在您的代码中,struct字段表示letter的类型为char * ,即它是指向字符数据的指针。

第二个意味着window是类型为Page *x值的数组,并且it也是类型为Page *

在同一行上声明多个变量时,请注意*在语法上是变量名的一部分,而不是类型。

所以int a, *b; 有效,并声明一个整数a和一个指向整数b指针。

您正在创建2个指针。 您可以将行拆分为:

Page *window[x]; // = 0; //you should set it to 0 (or NULL) to prevent nasty bugs.
Page *it = 0;

*itNULL初始化的指向Page对象的指针。

Page *window[x], *it = 0 ;

是相同的

Page *window[x];
Page *it = 0 ;

所以它是指向初始化为0的Page结构的指针

它是指向Page类型的结构的指针。 它等效于:

Page *window[x];
Page *it = 0;

它是指向变量的指针,它保存从其开始的物理内存地址

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM