1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
一:“++”,“--”运算放在判断等语句中直接使用会减少代码长度:
例1:
下面的squeeze(s,c)函数,它删除字符串s中出现是所有字符c:
void
squeeze(
char
s[],
int
c)
{
int
i,j;
for
(i=j=0;s[i] !=
'\0'
;i++)
{
if
(s[i] != c)
{
s[j++] = s[i];
}
}
s[j] =
'\0'
;
}
|
1
2
3
4
5
6
|
其中的
if
语句是由下面的
if
语句简化而来:
if
(s[i] != c)
{
s[j] = s[i];
j++;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
例2:
strcat
(s,t)函数是把字符串t连接到字符串s的尾部:
void
strcat
(
char
s[],
char
t[])
{
int
i = 0, j = 0;
while
(s[i] !=
'\0'
)
{
i++;
}
while
((s[i++] = t[j++]) !=
'\0'
)
{
;
}
}
while
语句中即进行了自增运算,又进行了赋值运算,还进行了判断运算。
二:语句1?语句2:语句3 的应用:
例如下面的循环语句将打印一个数组的n个元素,每行打印10个元素,每列之间用一个空格隔开,每行用一个换行符结束:
for
(i=0;i<n;i++)
{
printf
(
"%6d%c"
,a[i],(i%10 == 9 || i == n-1)?
'\n'
:
' '
);
}
|
1
2
3
4
5
|
三:用宏定义#define:
#define MAX(a,b) ((a)>(b)?(a):(b));
#define MIN(a,b) ((a)<(b)?(a):(b));
这样就不用用函数去实现MAX,MIN了,减少了调用函数而占用的cpu,从而减少了程序运行的时间。
四:在
return
中进行运算 , 而不在函数主体中额外加代码,使代码看上去更简单!例子就不用了哈。
|
本文转自 ye小灰灰 51CTO博客,原文链接:http://blog.51cto.com/10704527/1704937,如需转载请自行联系原作者