C语言代码执行后无任何输出,可能的触发原因有哪些?
C代码无输出问题排查
核心问题原因
- 第一处语法逻辑错误:
if (x = 20)中使用了赋值运算符=而非相等判断运算符==
C语言中赋值表达式的返回值为赋值的右值,此处返回20属于非0真值,因此会永远进入if的第一个执行分支,将x赋值为-1,else分支内的printf永远不会被触发 - 第二处逻辑问题:第二个if判断条件为
x > 0,此时x已经被赋值为-1,条件不成立进入空的else分支,第二个printf也没有执行机会,因此全程无任何输出 - 额外细节问题:原代码两处打印语句都存在拼写错误,
eqaul应为equal、greather应为greater;且第二个if的判断条件和打印内容逻辑相反,若x>0为真,打印内容却是“x not greather than 0”不符合预期逻辑
修正后可正常输出的代码示例
#include <stdio.h> int x = 10; int main() { // 将赋值操作改为相等判断 if (x == 20) { x = -1; } else { printf("x not equal to 20\n"); } // 修正判断逻辑和打印内容的对应关系 if (x > 0) { printf("x is greater than 0\n"); } else { printf("x is not greater than 0\n"); } return 0; }
内容的提问来源于stack exchange,提问作者aby jacob
相关产品推荐
相关产品推荐

