warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] char* suitStr[4] = {"黑桃","红桃","梅花","方块"};
时间: 2024-11-25 16:33:15 浏览: 14
DBO-CNN-BiLSTM-Attention蜣螂算法优化多变量时间序列预测,含优化前后对比(Matlab完整源码和数据)
这个警告信息 "warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]" 出现在C/C++编程中,当你试图将不同类型的数据初始化给指针变量时。在这个例子中:
```c
char* suitStr[4] = {"黑桃","红桃","梅花","方块"};
```
`suitStr`是一个 `char*` 类型的数组,它预期存储的是 `char` 类型的指针。然而,你在初始化时使用的字符串字面量 (`"黑桃"`、`"红桃"` 等) 是 `const char[]` 类型的,它们实际上是字符数组而不是字符指针。编译器因此发出警告,因为字符数组隐式转换成指向第一个元素的指针时,其类型并不兼容。
解决这个问题,你应该直接初始化 `char*` 数组,例如:
```c
char suitStr[4][4] = {"黑桃", "红桃", "梅花", "方块"};
```
这里我们创建了一个二维字符数组,每个元素都能存储单个字符。如果需要字符串,可以使用 C++ 的 std::string 或将其转为 `char*` 后再初始化。
阅读全文