You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++编译报错:expression must have integral or unscoped enum type 求助

问题原因及解决方法

错误根源

你定义了一个名为cout的int变量,而cout本来是C++标准库中用于输出的流对象(std::cout)。由于你使用了using namespace std;,局部作用域的cout变量会覆盖全局的std::cout。当你写cout << "..."时,这里的cout是int类型,而<<作为左移运算符只能接受整数/无作用域枚举类型的操作数,传入字符串字面量就触发了编译错误。

解决方法

方法1:重命名局部变量

把你的int变量改成不会和标准库名字冲突的名称,比如my_cout:

#include <iostream>

using namespace std;

int main(int argc, char** argv) {
    int my_cout=100;
    int *m=&my_cout;
    cout<<"dia chi cua bien my_cout"<<&my_cout<<endl;
    cout<<"gia tri cua bien my_cout"<<my_cout<<endl;
    cout<<"dia chi cua bien m"<<&m<<endl;
    cout<<"gia tri cua bien m"<<m<<endl;
    return 0;
}

方法2:明确使用标准库的std::cout

如果一定要保留cout作为变量名,就去掉using namespace std;,在输出时直接写std::cout:

#include <iostream>

int main(int argc, char** argv) {
    int cout=100;
    int *m=&cout;
    std::cout<<"dia chi cua bien cout"<<&cout<<std::endl;
    std::cout<<"gia tri cua bien cout"<<cout<<std::endl;
    std::cout<<"dia chi cua bien m"<<&m<<std::endl;
    std::cout<<"gia tri cua bien m"<<m<<std::endl;
    return 0;
}

内容的提问来源于stack exchange,提问作者Tuấn minh Nguyễn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:30:24