输入三个整数求平方,不知道错在哪

img

img

我用scanf设置输入三个数,运行时输入的数却不受限制,我没有给abc赋值,b输出却是16

**输入三个数,运行时输入的数却不受限制 ** : 只录入了前3个数

这你是一行输入的当然没有限制啊,你如果输入1个回车然后在输入下一个就会在输完第三个后截止并输出

Q1: 用scanf设置输入三个数,运行时输入的数却不受限制

A1: 程序只读入三个数,其他输入的数字会放入缓冲区,在这个程序中没有影响

Q2: 没有给abc赋值,b输出却是16

A2: 局部变量在未初始化情况下,初值为随机值,具体实现由编译器决定。
如VC/VS等编译器,会将初始值值为0xCCCCCCCC, 而GCC等编译器则是不可预知的随机值。