noo*_*mer 3 c integer initialization
当打印来自用户的读取输入的值时,数字下溢和溢出,我不明白为什么。
因此,我正在通过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);
}
Run Code Online (Sandbox Code Playgroud)
这里
int nl, bl, tab= 0;
集tab到0,但不初始化nl和bl以任何方式。因此,当以后增加它们时,这是不确定的行为。尝试以下方法:
int nl = 0, bl = 0, tab = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |