您的位置:首页 > 编程语言 > C语言/C++

C语言程序设计:现代方法2

2017-10-17 09:37 246 查看

6.循环

逗号运算符,优先级最低,从左致右,形如:表达式1,表达式2,…

最后一个表达式的值代表整体

for(int i = 0, j = 0; i <= N; i++)
j += i;


不执行任何乘法操作而计算连续的平方值。

odd = 3; odd += 2; suqare += odd;

break只能跳出一层嵌套,可用于switch和循环,而continue只能用于循环。情景如检测是否为无效数据时,且检测过程特别复杂,则用continue则非常适合。

goto对嵌套循环的退出是很有效的。

C程序员习惯性把空语句单独放一行。空语句其实用途较少,比如设置goto的标号时,标号想在一段复合语句的末尾,但标号后必须得跟语句,则可以用空语句。当然空语句不适合阅读,那么建议放个大括号{ }即复合语句即可。

7.基本类型

有符号16位最大值32767(2^15 -1),32位是2147 483 647(2^31-1),对于无符号来说16位65535,32位为4 294 967 295。对于可移植技巧,大家应明确signed或unsigned。

与原码、反码不同,数值0的补码只有一个

在以12为模的系统中,凡是减10的运算都可以用加2来代替,这就把减法问题转化 成加法问题了(注:计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法)。10和2对模12而言互为补数。

八进制,十六进制适合于低级编程。有一些编译器会将符合int范围的long int改写成int, 为了防止这种情况可将常量后面加一个L/l,U/u或F/f。

%hd,%ld,%o,%x,%u



读写浮点数时候,double时读scanf中在e,f,g前加l,注意显示printf中不能用小的,long double时,读写都可以L。

转义字符可能比较晦涩,建议大家用宏定义出来。

scanf读入字符时不会跳过空白,所以一般这样scanf(” %c”,&a);这意味着跳过多个或一个空白符。对于字符的读写putchar和getchar,优于scanf和printf,因为专一性及宏实现,并返回读入带的字符。

隐式转换

1.算术表达式类型不同;2.return返回与函数返回类型;3.函数形参;

4.赋值类型不同。int->unsigned int->long int->un long int;

小心溢出发生在强制转换类型之前。C语言标准中,对有符号溢出结果是未定义的,但无符号是取模运算。

typedef 类型定义可以使阅读更容易理解,另外为了可移植性,大家应该重新定义常用型别。

对于printf操作,%x%o只能正确显示无符号整数,否则会输出很大的数。

三字符序列以??开头,极少使用目的是表示出键盘上没有的字符。

编码 对应的字符



8.数组

对数组长度的定义,较好的方法使用宏定义。如果初始化比数组短,其余都为0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言