我需要一些帮助来理解下面的C代码:
假设我的结构为:
typedef struct
{
char *letter;
int dataSize;
int Number;
}Page;
然后:
我在相同的代码中有以下行,假设x是一个已定义的变量:
Page *window[x], *it = 0 ;
我想知道它在那里做了什么。
答案 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;
*it
是NULL
- 指向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)
它是指向变量的指针,它保存从
开始的物理内存地址