#include<stdio.h>
int main()
{
int x = 1;
int y, z;
y = x++ + x++ + x++ + x++;//先赋值再自加 y = 1 + 2 + 3 + 4 = 10
//x复制了一份,再进行自加,停留在原地的是复制了的, 所以计算顺序为
// 1 + 2 = 3, 3 + 3 = 6, 6 + 4 = 10
printf("%d, %d\n", x, y);
x = 0;
z = ++x + ++x + ++x + ++x;//先自加再赋值
//x 未进行复制,在自己身上进行的操作,第一个加号前后的值相同。
// ++x + ++x == 2 + 2 = 4,4 + 3 = 7, 7 + 4 = 11
printf("%d, %d\n", x, z);
return 0;
}
#include<stdio.h>
int main()
{
double x = 1.234567;
int w = 5, d = 2;
printf("%*.*f\n", w, d, x);
//第一个* 表示连带小数点,整个实数的位数(宽度);第二个*是小数点后保留的位数(精度)
return 0;
}
还有百度的大佬的回答:
#include<stdio.h>
int main()
{
//在scanf里面,*表示虚读,读就读了但是不做处理(不赋值给任何变量,);
int x = 0, y = 0;
scanf("%*d%d", &x, &y);
printf("%d, %d\n", x, y);
return 0;
}