要求是使用scanf输入三个整型值,再依次输出输入的整型值。
刚开始思路就是简单定义三个整型变量,用scanf简单将输入值暂存输出即可,代码和运行情况如下

这里,敲完代码显示scanf语句中的三个变量在这里未初始化,尝试调试运行,情况如下

经查阅,得知scanf函数,与printf不同的是它要存入输入值的地址,而不是变量的值,&score1,即为取变量score1在内存中的地址,如果不加&,此时score1只是一个未经初始化的变量,其值是个乱码,因此此时程序运行报出段错误,且乱码也不是内存中的地址,所以此时scanf函数的输入参数错误,无法正常运行。
这里改为取变量地址后,即可实现目标要求,如下

PS:其实不用&这个取地址符号,而此时的score1定义一个地址值,这种scanf语句也能正常输入,但区别在,此时输入的值存入score1值所在地址中,而用&score1,则将输入的值存入变量score1的地址。
C/C++中的scanf函数的使用注意点
最新推荐文章于 2025-04-06 14:30:04 发布
本文详细解析了C语言中scanf函数的正确使用方法,强调了使用地址符(&)的重要性,避免段错误并确保输入值正确存储。通过实例对比,阐述了直接使用变量名与取变量地址的区别。
1229

被折叠的 条评论
为什么被折叠?



