C++数据结构和算法分享专题

18_三目运算符和逗号表达式

2018-03-09  本文已影响15人  编程半岛

关键词:三目运算符、 三目运算符(a?b:c) 的返回类型、逗号表达式、一行代码实现strlen

1. 三目运算符

#include <stdio.h>

int main()
{
    int a = 1;
    int b = 2;
    int c = 0;
    
    c = (a < b ? a : b);
    
    printf("c = %d\n", c);
    
//  (a < b ? a : b) = 3; // error: lvalue required as left operand of assignment

    return 0;
}

总结: 在C语言中,三目运算符返回的是一个值,而不是一个变量,因此不能作为左值使用。

2. 三目运算符(a?b:c) 的返回类型

原则:

3. 逗号表达式

4. 一行代码实现strlen

#include <stdio.h>
#include <assert.h>

int strlen(const char* s)
{
    return assert(s), ( *s ? strlen(s + 1) + 1 : 0);
}   

int main()
{
    printf("%d\n", strlen("jacob2359"));
    printf("%d\n", strlen(NULL));
    
    return 0;
}

输出结果:

9
a.out: 2.c:6: strlen: Assertion `s' failed.
已放弃

5. 小结

声明:此文章为本人在学习狄泰软件学院《C语言深度解析》所做的笔记,文章中包含狄泰软件资料内容一切版权归狄泰软件所有!

上一篇 下一篇

猜你喜欢

热点阅读