gpt4 book ai didi

c++ - 为什么不能同时定义两个指针?

转载 作者:行者123 更新时间:2023-11-30 00:45:58 28 4
gpt4 key购买 nike

我有一些代码不起作用,解决方案非常简单:只需以更长的方式编写所有代码即可。即,以下内容:

我知道下面是正确的代码:

int main() {
int a = 1,
b = 2;
return 0;
}

但是我很惊讶地看到下面给出了一个错误:

struct Foo {
int a = 0;
};


int main() {
Foo* f = new Foo;
Foo* x = f,
y = f;
return 0;
}

这会产生以下错误:

error: conversion from ‘Foo*’ to non-scalar type ‘Foo’ requested
y = f;
^

即使您将 xy 的定义替换为:

Foo* x = f;
Foo* y = f;

那么有人可以解释为什么这是不允许的吗(或者将我重定向到解释这个的不可避免的其他 SO 问题,我无法通过这个错误找到它)?

最佳答案

Foo* x = f,
y = f;

这相当于:

Foo* x = f;
Foo y = f;

您需要添加另一个*:

Foo* x = f,
*y = f;

关于c++ - 为什么不能同时定义两个指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40595945/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com