作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
打印读取用户输入的值时,数字下溢和上溢,我不明白为什么。
所以我正在通过 ansi C 标准来选择 c 作为一种语言,我不明白为什么这会下溢和溢出前两个值。
int c;
int nl, bl, tab= 0;
while ((c = getchar())!= EOF){
if (c == '\n'){
++nl;
}
if (c == ' '){
++bl;
}
if (c == '\t'){
++tab;
}
printf("%d\t %d\t %d\n", nl, bl, tab);
}
最佳答案
这里
int nl, bl, tab= 0;
将 tab
设置为 0
,但不以任何方式初始化 nl
和 bl
。因此,当它们稍后增加时,它是未定义的行为。试试这个:
int nl = 0, bl = 0, tab = 0;
关于c - 为什么我的整数在这里溢出和下溢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57569694/
我是一名优秀的程序员,十分优秀!