为什么错误: 无法将“card*”转换为“card**”
时间: 2023-08-31 13:33:59 浏览: 87
### 回答1:
这个错误通常是由于类型不匹配导致的。在这种情况下,您可能正在尝试将一个指向指针的指针转换为指向指针的指针的指针。这是不允许的,因为这两种类型是不同的。您需要检查您的代码,确保您正在使用正确的类型。如果您需要更多帮助,请提供更多上下文或代码示例。
### 回答2:
错误原因是由于类型不匹配。在编程中,"*"符号表示指针变量,它存储了另一个变量的内存地址。而"**"表示指向指针的指针,即指针的指针。两者的含义是不同的。
在这种情况下,"card*"表示指向card对象的指针变量,而"card**"表示指向card*类型指针的指针变量。换句话说,card**指针指向了card*指针。
无法将"card*"转换为"card**"是因为它们所指向的内存地址的结构不同。指针的指针需要指向指针对象的地址,而不是指向单个对象的地址。
要解决这个错误,可以通过创建指向指针的指针来匹配类型。这可以通过使用&符号获取指针的地址,然后将其分配给card**变量来实现。例如,可以使用以下代码来解决该错误:
```c++
card* myCard = new card();
card** myCardPointer = &myCard;
```
这样,myCardPointer将指向myCard的地址,并且类型匹配。
总的来说,无法将"card*"转换为"card**"是因为它们的类型不同,一个指向对象,另一个指向指针。要解决这个错误,需要创建一个指向指针的指针变量,并将其赋值为指针的地址。
### 回答3:
错误信息"无法将“card*”转换为“card**”"是由于指针类型的不匹配导致的。
在C语言中,指针类型是非常重要的概念,它们用于存储和操作内存中的地址。在这个错误中,涉及到了指向指针的指针,即"card**"和"card*"类型。
"card*"表示指向单个card对象的指针,而"card**"表示指向指针的指针,即一个指向指向card对象的指针的指针。
在代码中,当尝试将"card*"类型的指针转换为"card**"类型的指针时,编译器会发出错误,因为这两个指针类型是不兼容的。
这是因为"card*"类型的指针存储的是一个card对象的地址,而"card**"类型的指针存储的是指向指针的指针,它需要指向一个"card*"类型的指针。
转换这两种指针类型是完全不同的操作,因此编译器会在这种情况下发出类型错误。
解决这个错误的方法是确保在需要转换的地方使用正确的指针类型,并相应地修改代码,以使指针类型保持一致。或者可以通过中间变量的方式来实现类型的转换。