1、赋值是从右到左进行的,例如:
1#include<stdio.h>
2int main()
3{
4 int jane,tarzan,cheeta;
5
6 cheeta=tarzan=jane=68;
7 printf("cheeta=%d tarzan=%d jane=%d \n",cheeta,tarzan,jane);
8
9 return 0;
10}
显示结果为:
1cheeta=68 tarzan=68 jane=68
2、优先级
增量和减量运算符有很高的优先级;只有圆括号比它们的优先级高。所以x*y++代表(x)*(y++)而不是(x*y)++。
n=(y+n++)*6,只有当使用了n之后,n的值才增加。优先级告诉我们++只属于n,而不属于y+n。
3、语句
声明语句 int toes;
赋值语句 toes=12;
函数调用语句 printf("%d\n",toes);
结构化语句 while(toes<20) toes=toes+2;
空语句 ;
复合语句 在花括号里的语句
4、类型转换
1#include<stdio.h>
2int main()
3{
4 char ch;
5 float fl;
6 int i;
7
8 fl=i=ch='C'; //1
9 printf("ch=%c fl=%2.2f i=%d\n",ch,fl,i); //2
10 ch=ch+1; //3
11 i=fl+2*ch; //4
12 fl=2.0*ch+i; //5
13 printf("ch=%c,i=%d,fl=%2.2f\n",ch,i,fl); //6
14
15 return 0;
16}
显示结果为:
1ch=C fl=67.00 i=67
2ch=D,i=203,fl=339.00
解释:
1-2:字符'C'被作为1字节的ASCII值存储在ch里。整数变量i接受'C'转换过来的整数位67,以4个字节存储。最后fl接受67.00.
3和5:1为整型,占4个字节,ch为字符型,转为int型,占4个字节,然后与1相加并把结果的最后一个字节截下来存储在ch中。
3和5:为了和2相乘,ch的值被转换为一个4字节的整数68.乘积整数(136)为了和fl相加而被转换为浮点型。结果(203.00f)
被转换为int类型并存储在i中。
4和5:为了和2.0相乘,ch的值68被转换为浮点型。为了做加法,i被转换为浮点型。结果339.00被存储在fl中。