我的c++代码bfh.bfType[1] = 'M';报错,表达式必须包含指向对象的指针类型,但它具有类型 "int",应该怎么改
时间: 2024-02-20 19:58:44 浏览: 56
这个问题可能是由于bfType被定义为一个整型变量导致的。bfType实际上应该是一个char类型的数组,因为它只包含两个字符。所以你可以尝试将bfType的类型从int改为char数组类型。
下面是一个示例代码片段,可以帮助你更好地理解:
```
#include <iostream>
using namespace std;
int main() {
struct BITMAPFILEHEADER {
char bfType[2];
unsigned int bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned int bfOffBits;
};
BITMAPFILEHEADER bfh;
bfh.bfType[0] = 'B';
bfh.bfType[1] = 'M';
bfh.bfSize = 0;
bfh.bfReserved1 = 0;
bfh.bfReserved2 = 0;
bfh.bfOffBits = 0;
cout << "bfType: " << bfh.bfType[0] << bfh.bfType[1] << endl;
cout << "bfSize: " << bfh.bfSize << endl;
cout << "bfReserved1: " << bfh.bfReserved1 << endl;
cout << "bfReserved2: " << bfh.bfReserved2 << endl;
cout << "bfOffBits: " << bfh.bfOffBits << endl;
return 0;
}
```
这个代码片段使用了一个结构体来定义BITMAPFILEHEADER,其中bfType是一个两个字符的char数组。你可以根据需要修改这个结构体并测试代码。
阅读全文