当我运行程序时,它无限次地打印126次,ch如何取126的值? #包括 int main() { char ch; 而(ch>125) { printf(“%d”,ch); } 返回0; }

当我运行程序时,它无限次地打印126次,ch如何取126的值? #包括 int main() { char ch; 而(ch>125) { printf(“%d”,ch); } 返回0; },c,C,您尚未初始化ch,因此每次运行程序时它可以是任何内容,在本例中,它是126格式化此混乱!拿着这个,读一下,这是你写的,对吧?那么,您希望这段代码做什么?也就是说,你希望ch有什么样的值可以避免进入无限循环,更重要的是,你为什么期望这样ch具有不确定的值。因此,与确定的内容进行比较并期望确定的结果有点疯狂。为什么忽略或不启用编译器警告?每一个现代的编译器都会对你的行为提出警告。注意他们!这是可能发生的一件事,但不是答案。没有将ch初始化为任何确定的值,这是原因,它持有垃圾值垃圾可以是任何东西,在本

您尚未初始化ch,因此每次运行程序时它可以是任何内容,在本例中,它是126

格式化此混乱!拿着这个,读一下,这是你写的,对吧?那么,您希望这段代码做什么?也就是说,你希望
ch
有什么样的值可以避免进入无限循环,更重要的是,你为什么期望这样
ch
具有不确定的值。因此,与确定的内容进行比较并期望确定的结果有点疯狂。为什么忽略或不启用编译器警告?每一个现代的编译器都会对你的行为提出警告。注意他们!这是可能发生的一件事,但不是答案。没有将ch初始化为任何确定的值,这是原因,它持有垃圾值垃圾可以是任何东西,在本例中是126,如果程序再次运行,垃圾值可以再次不同。你想研究未定义的行为意味着什么!这就是我在回答中提到的,“它可以是任何东西”意味着未定义的行为。不,只是每次获得不同的值与UB不同!
#include <stdio.h>
int main ()
 {
   char ch;
   while(ch>125)
   {
       printf("%d, ",ch);
   }
   return 0;
}