所以我正在为学校编写代码,但我需要一些帮助来理解正在创建的这个结构和 typedef
struct matrix_2D_struct {
int** data_arr;
int rows;
int cols;
};
typedef struct matrix_2D_struct * matrix_ptr;
这是否定义了一个 matrix_2D_struct 类型的结构,它包含一个指向名为 data_arr 的 int 类型指针、一个名为 rows 的 int 和一个名为 cols 的 int?
还有最后一行我没看懂。我知道它正在定义一些东西并给它一个 matrix_ptr 的标签,但它是否将结构的别名定义为指针?我不确定该如何解释。
另外,我可以使用 calloc 将 data_arr 定义为二维数组吗?
感谢您的宝贵时间。
最佳答案
有时你会看到这样的定义:
unsigned long long var;
如果您的程序有很多 unsigned long long
就会变得太乏味了。要检查它,您可以通过使用 typedef 定义一个基于该类型的新类型来缩短它,例如:
typedef unsigned long long ULL;
现在你只需要写 ULL var;
与结构相同,而不是每次都编写 struct dummy var
你定义一个基于 struct dummy
的新类型,使用 typedef 如下:
typedef struct dummy DUMMY;
DUMMY myVar; // the type of myVar is a struct dummy
与指针相同,您可以定义一个新类型,即指针类型,例如:
typedef struct dummy* P_DUMMY;
P_DUMMY myVarPtr; // the type of myVarPtr is a pointer to struct dummy;
关于我可以在解释这段代码时得到一些帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33459182/