逗号表达式是C语言中的粘贴剂:
- 逗号表达式用于将多个子表达式连接为一个表达式
- 逗号表达式的值为最后一个表达式的值
- 逗号表达式中的前N-1个子表达式可能没有返回值
- 逗号表达式按照从左到右的顺序计算字表达式的值
示例:逗号表达式的示例
下面的程序输出什么?为什么?
#include <stdio.h>
void hello()
{
printf("Hello!\n");
}
int main()
{
int a[3][3] = {
(0, 1, 2), // 结果为2
(3, 4, 5), // 结果为5
(6, 7, 8) // 结果为8
};
int i = 0;
int j = 0;
while( i < 5 )
printf("i = %d\n", i),
hello(),
i++;
for(i=0; i<3; i++)// 将i重新赋值为0开始打印数组
{
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("deepinout.com"));
printf("len = %d\n", strlen(NULL));
return 0;
}
输出结果: