今天先简单介绍一下scanf函数。
scanf 的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。
下面用一个案例说明scanf
#include <stdio.h>
int main()
{
int a;
a = 2023;
printf("%d", a);
return 0;
}
我们直接给一个变量 a 赋值,打印出来后,值为 2023,但这样写功能性太弱了,能不能a是随便的整数,然后打印出来呢?这就是 scanf 的用处 “用键盘给变量赋值”
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
printf("%d", a);
return 0;
}
这样运行后,你输入一个值,打印出来的就是你输入的那个值。(在vs2022等版本中,scanf要替换成scanf_s,至于为什么这样做,以后在进行说明。
scanf的格式
- scanf("输入控制符",输入参数)
#include <stdio.h> int main() { int a; scanf_s("%d", &a);//&是取地址符,&a 表示变量a的地址 printf("%d", a); return 0; }
-
要想将程序中的 scanf 行弄明白,首先要清楚的是:我们从键盘输入的全部都是字符。比如从键盘输入 123,它表示的并不是数字 123,而是字符 '1'、字符 '2' 和字符 '3'。这是为什么呢?操作系统内核就是这样运作的。操作系统在接收键盘数据时都将它当成字符来接收的。这时就需要用“输入控制符”将它转化一下。所以%d的含义就是要将从键盘输入的这些合法的字符转化成一个十进制数字。经过%d 转化完之后,字符 123 就是数字 123 了。
-
其次还要知道 &是取地址符,&a表示变量a的地址,又称为取 a 的地址。那么以变量 a 的地址为地址的变量是哪个变量呢?就是变量 a。所以程序中 scanf 的结果就把值 123 放到变量 a 中。
-
所以综上所述,scanf 语句的意思就是:从键盘上输入字符 123, 然后%d将这三个字符转化成十进制数 123,最后通过“取地址 a”找到变量 a 的地址,再将数字 123 放到以变量 a 的地址为地址的变量中,即变量 a 中,所以最终的输出结果a = 123。
-
这就是scanf函数的简单应用了,至于scanf的其他注意事项,以后进行补充。