先来一段代码(从键盘上输入三个整数,并尝试在屏幕上显示第二个整数)
#include<stdio.h>
int main()
{
int a;
scanf("%*d %d %*d",&a);
printf("%d",a);
return 0;
}
可以看出,这段代码只声明了一个a变量,并通过scanf将数值赋值给a。
一些刚学C语言的小白问道:不应该是“%d”吗?怎么是“%*d”?
scanf("%d %d %d", &a, &b, &c)
printf("%d", b)
是的,这每一个“%d”与后面的变量地址是一一对应的,但这样的缺点是有一点麻烦,显得不会耍小聪明。
而“%*d”中的“*”是赋值抑制符,经过scanf输入也不会提前赋值给a变量中。