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

时间:2013-11-22 10:08:06

标签: c structure

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

假设我的结构为:

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

然后:

我在相同的代码中有以下行,假设x是一个已定义的变量:

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

我想知道它在那里做了什么。

5 个答案:

答案 0 :(得分:2)

*表示“指针”。如果您正在编写C代码,您应该知道这一点。否则你真的需要一些基本的教程或介绍性文本。

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

第二个意味着window是类型为x的{​​{1}}值数组,而Page *的类型为it。< / p>

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

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

答案 1 :(得分:1)

您正在创建2个指针。您可以在以下位置拆分:

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

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

答案 2 :(得分:1)

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

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

所以它是一个指向初始化为0

的Page结构的指针

答案 3 :(得分:1)

它是指向Page类型结构的指针。它相当于:

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

答案 4 :(得分:-1)

它是指向变量的指针,它保存从

开始的物理内存地址