做公众号时图片的网站,安徽建设工程造价信息网站,小程序的制作步骤,韩国吃秀在哪个网站做直播本文参考C Primer Plus进行C语言学习 文章目录 表达式语句 副作用和序列点复合语句#xff08;块#xff09;类型转换 1.表达式 表达式由运算符和运算对象组成。下面是一些表达式#xff1a; 4 -6 421 a*#xff08;bc/d#xff09;/20 q5*2 xq%3 q3
每个表达式都有一… 本文参考C Primer Plus进行C语言学习 文章目录 表达式语句 副作用和序列点复合语句块类型转换 1.表达式 表达式由运算符和运算对象组成。下面是一些表达式 4 -6 421 a*bc/d/20 q5*2 xq%3 q3
每个表达式都有一个值
2.语句 在C语言中语句都以分号结尾。因此
legs4
只是一个表达式而下面代码为语句
legs4;
#includestdio.h
int main()
{int count,sum;count0;sum0;while(count20)sumsumcount;printf(sum%d\n,sum);return 0;
}
该例中的while循环只有一条语句不需要用花括号括起来。多条语句需要用花括号括起来。
副作用和序列点
副作用是对数据对象或文件的修改。例如语句
states50;
它的副作用是将变量的值设置为50.
序列点是程序执行的点在该点上所有的副作用都在进入下一步之前发生。在C语言中语句的分号标记了一个序列点。意思是在一个语句中赋值运算符、递增运算符、递减运算符对运算对象做的改变必须在程序执行下一条语句之前完成。
序列点有助于分析后缀递增何时发生。例如:
while(guests10)
printf(%d \n,guests);
在此C语言初学者认为“先使用它再递增它”的意思是在printf()语句中先使用guests,再递增他。但是guests10是一个完整的表达式因为它是while循环的测试条件所以该表达式的结束就是一个序列点。因此C保证了在程序转至执行printf()之前发生副作用即递增guest。同时使用后缀形式保证了guests在完成与10的比较后才递增。
可作参考 3.复合语句块 复合语句是用花括号括起来的一条或多条语句。
/*程序段1*/
index0;
while(index10) sam10*index2;
printf(sam%d\n,sam); /*程序段2*/
index0;
while(index10)
{ sam10*index2; printf(sam%d\n,sam);
} 1中。循环结束后printf()函数只会被调用一次。 2中每执行一次循环printf()函数就被调用一次。 4.类型转换
转换规则 1.由于都是从较小类型转换为较大类型所以这些转换被称为升级。 2.涉及两种类型的运算两个值会被分别转换为两种类型的更高级别。 3.类型的级别从高到低依次是long double、double、float、unsignedlong long、long long、unsignes long、long、unsigned int、int。之所以没有char和short因为它们被升级为int或unsigned int。
#includestdio.h
int main()
{char ch;int i;float fl;flichC; //9printf(ch%c,i%d,fl%2.2f\n,ch,i,fl); //10chch1; //11ifl2*ch; //12fl2.0*chi; //13printf(ch%c,i%d,fl%2.2f\n,ch,i,fl); //14ch1107; //15printf(Now ch%c\n,ch); //16ch80.89; //17printf(Now ch%c\n,ch); //18return 0;
} 9和10行字符C被作为1字节的ASCⅡ值储存在ch中。 整数变量i接受由C转换的整数即按4字节存储67。fl由67转换67.00。 11和14行字符C被转换为67。然后加1。计算结果为4字节的68。68被解释成D的ASCⅡ码。 第12行和第14行ch 的值被转换成4字节的整数68)然后2乘以ch。为了和fl相加乘积整数136)被转换成浮点数。计算结果(203.00f)被转换成int类型并储存在i中。 第13行和第 14行ch 的值(D或68被转换成浮点数然后2乘以ch。为了做加法i的值203被转换为浮点类型。计算结果339.00)被储存在fl中。 第15行和第16行演示了类型降级的示例。把ch 设置为一个超出其类型范围的值忽略额外的位后最终ch的值是字符s的ASCII码。或者更确切地说ch的值是1107265即83。 第17行和第18行演示了另一个类型降级的示例。把ch 设置为一个浮点数发生截断后ch的值是字符P的ASCII码。