1, /t 代表跳到下个制表位,一个制表位8个格子,加上前面的字,应该是3个空格,所以再回一个,就是2个空格
2,j=i++; j=4;i+=1;
printf("j=%d,%d\n",j,i++); j=4,i=5;i+=1
j=++i; j=i+1(j=7);i=7
printf("j=%d,%d\n",j,++i);7 8
j=--i; 7 7
printf("i=%d,%d\n",i,j); i=7,7
j=i--; j=7,i=6
printf("i=%d,%d\n",i,j); i=6,7
}
3,占位符float用%f,double用%lf,所以如果你把x声明为float就要用%f,如果声明成double就要用%lf。但是printf不区分float和double,它一概当double处理,所以不要在%f里面加上l,而且C默认的输出精度是小数点后6位,你一般是看不到6位以后的值的,如果你想多显示一些精度值,你可以用%.nf, n为你想要的精度值。
4,题目错了吧
1、在没有看清楚前输出前面的字符被被后面的覆盖了,误以为没有输出\\
如果是打印机输出(而不是屏幕输出)就不会出现这种情况
2、int i=4,j;
j=i++; //等价于j = i; i ++;
printf(\"j=%d,%d\\n\",j,i++);// 输出j=4,5 然后i++
j=++i; //等价于i++; j = i
printf(\"j=%d,%d\\n\",j,++i); //i++,然后输出j=7,8
同理...