有人可以告诉我,一般情况下,C中会有以下情况吗?
{{1}}
此命令是否在整数类型的结构H中创建L变量,其大小为n?
答案 0 :(得分:1)
它将创建一个H.n
指向int
的数组。指向第一个数组元素的指针将存储在H.L
中。
如果您想要一个int
数组,请删除星号。
另外,您可能更乐意使用vector<int*>
。
使用起来容易得多。
答案 1 :(得分:0)
在表达式声明的右侧
O(nlogn)
使用一元运算符H.L = new int* [H.n];
创建了一个类型为int *[H.n]
的数组。也就是说,数组的每个元素都有new []
类型。
方括号中使用的表达式int *
指定已分配数组的元素数,并且必须转换为类型H.n
。通常它是一些整数类型,例如size_t
。
根据C +标准(5.3.4新)
- ...如果是数组,则new-expression返回指向初始值的指针 数组的元素。
醇>
因此,左侧左值int
应该具有H.L
类型或某种类型(通常在极少数情况下),可以从int **
转换。