为什么错了?
2026-07-24 16:12:26
发布于:浙江
大家来帮我看看:
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b;
//cout<<a+b;
cout<<a+bbbbbbbbbbbbb;
}
题目链接
骂我的人是***给!!!
全部评论 9
词法分析层面:未定义标识符 bbbbbbbbbbbbb
C++ 语法规定:源代码中连续字母数字下划线构成标识符。bbbbbbbbbbbbb 既不是关键字,也没有提前声明变量、常量。编译器遍历 token 时,识别出这是一个标识符符号,但在当前作用域找不到该符号的声明,触发未定义标识符(undeclared identifier)编译错误。
已定义变量只有 a 和 b,单个 b 合法,一串连续 b 是全新未知名字。
变量 a 存在隐患:未初始化局部变量
int a,b; 定义在 main 函数内,属于自动局部变量,不会自动初始化为 0,内存存放随机垃圾值。就算把代码改成 a+b,语法能编译通过,但运算结果是不确定值,属于未定义行为(Undefined Behavior)。
表达式合法性说明
a + b 是两个 int 变量相加,合法算术表达式;
a + bbbbbbbbbbbbb 中 + 右侧是非法标识符,表达式构造失败,编译直接终止,无法生成可执行文件。2026-07-24 来自 北京
1钢管材一位
2026-07-24 来自 上海
1你这个很难办
2026-07-24 来自 山东
1是啊,为什么错了?
2026-07-24 来自 广东
1?
2026-07-24 来自 浙江
0装糖来的
2026-07-24 来自 浙江
0
我要。。。。
2026-07-24 来自 山东
1/bangbangt
2026-07-24 来自 浙江
1我都没想到这么说
2026-07-24 来自 湖北
1
都别理他,这种小鬼就是来蹭热度的
2026-07-24 来自 湖北
1是啊,错什么?
2026-07-24 来自 上海
0解出来图灵奖
2026-07-24 来自 山东
0







































有帮助,赞一个