C语言 逗号表达式

逗号表达式是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;
}

输出结果:

C语言逗号表达式

示例: 一行代码实现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;
}

输出结果:

C语言逗号表达式

赞(3)
未经允许不得转载:极客笔记 » C语言 逗号表达式
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址