这可能是一个非常愚蠢的问题。我有一个任务来创建一个新节点并向其添加值。我一直在网上寻求帮助,遇到了以下代码:
head = new(struct node);
我认为这是一种创建新节点并将其分配给 head 的方法,对吧?这只是一种更简单的写法吗?
node *new_node = new node;
head = new_node;
谢谢
这是正确的。head = new(struct node);
正在使用断言运算符,并且
与node *new_node = new node;
head = new_node;
.
我不确定,但我认为现代编译器甚至优化了同一汇编代码的两个输入,但您绝对应该使用head = new(struct node);
,因为它更具可读性。
struct
是不必要的:
head = new node;
是你需要写的全部。传统上,您将添加括号以使其构造函数中带有参数的类更加一致:
head = new node();
这与在临时值中创建然后复制到head
的第二个示例相同。大多数编译器会优化临时值。