一个很奇怪的C语言问题
来源:百度知道 编辑:UC知道 时间:2024/05/21 13:00:07
以下程序运行时若从键盘输入:10 20 30<回车>。输出结果是
#include <stdio.h>
main()
{ int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d ",i,j,k);
}
结果是 10 30 0
真的让人奇怪,怎么把30赋予j了?实在想不明白,请高手指点。。。
#include <stdio.h>
main()
{ int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d ",i,j,k);
}
结果是 10 30 0
真的让人奇怪,怎么把30赋予j了?实在想不明白,请高手指点。。。
%和d之间的* 表示赋值约束,即忽略这个输入,
输入 10 20 30时,20被忽略,所以30赋予j
这样就对了
#include <stdio.h>
main()
{ int i=0,j=0,k=0;
scanf("%d%d%d",&i,&j,&k);
printf("%d%d%d ",i,j,k);
}