逗号表达式是C语言中的粘贴剂:
下面的程序输出什么?为什么?
#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;
}
输出结果:

#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("lmcjl.com"));
    printf("len = %d\n", strlen(NULL));
    return 0;
}
输出结果:

本文链接:http://so.lmcjl.com/news/23809/