1 逗号表达式
- 逗号表达式是C语言中的“粘贴剂”。
- 逗号表达式用于将多个子式连接为一个表达式。
- 逗号表达式的值为最后一个子表达式的值。
- 逗号表达式中的前N – 1个子式表达式可以没有返回值。
- 逗号表达式按照从左向右的顺序计算每个子表达式的值。
逗号表达式的示例(不好的使用方式)
void hello()
{
printf("Hello!\n");
}
int main()
{
int a[3][3] = {
(0, 1, 2),
(3, 4, 5),
(6, 7, 8)
};//int a[3][3] = {2, 5, 8};此处为不当的逗号表达式
int i = 0;
int j = 0;
while( i < 5 )
printf("i = %d\n", i),
hello(),
i++;
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("a[%d][%d] = %d\n", i, j, a[i][j]);
}
}
return 0;
}
一行代码实现strlen
#include <stdio.h>
#include <assert.h>
int strlen(const char* s)
{
return assert(s), (*s ? strlen(s + 1) + 1 : 0);
}
int main()
{
printf("len = %d\n", strlen("Delphi"));
printf("len = %d\n", strlen(NULL));
return 0;
}
2 小结
- 逗号表达式按照从左向右的顺序计算每个子表达式的值。
- 逗号表达式的值为最后一个子表达式的值。