汉扬编程 C语言入门 C语言学习第16篇—三目运算符和逗号表达式

C语言学习第16篇—三目运算符和逗号表达式

原文首发于同名微信公号「Allen5G」,欢迎大家搜索关注,欢迎转发!三目运算符(a ? b : c)可以作为逻辑运算的载体

C语言学习第16篇---三目运算符和逗号表达式

规则:当a 的值为真时,返回b的值 , 否则返回c的值

C语言学习第16篇---三目运算符和逗号表达式

实验1:三目运算符初探

C语言学习第16篇---三目运算符和逗号表达式

#include <stdio.h>int main(){ int a = 1; int b = 2; int c = 0; c = a < b ? a : b; (a < b ? a : b) = 3; printf(\”%d\\n\”, a); printf(\”%d\\n\”, b); printf(\”%d\\n\”, c); return 0;}三目运算符(a ? b : c)的返回值类型

~通过隐式类型转换规则返回b 和 c中的较高类型

~当b 和c 不能隐式转换到同意类型时将编译出错

实验2:三目运算符的返回类型

#include <stdio.h>int main(){ char c = 0; short s = 0; int i = 0; double d = 0; char* p = \”str\”; printf( \”%d\\n\”, sizeof(c ? c : s) ); printf( \”%d\\n\”, sizeof(i ? i : d) ); printf( \”%d\\n\”, sizeof(d ? d : p) ); return 0;}逗号表达式:

实验3:逗号表达式实例

#include <stdio.h>void hello(){ printf(\”Hello!\\n\”);}int main(){ int a[3][3] = { (0, 1, 2), (3, 4, 5), (6, 7, 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;}实例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(\”len = %d\\n\”, strlen(\”Delphi\”)); printf(\”len = %d\\n\”, strlen(NULL)); return 0;}小结:

三目运算符返回变量的值,而不是变量本身

三目运算符通过隐式转化规则确认返回值类型

逗号表达式按照从左到右的顺序计算每个子表达式的值

逗号表达式的值为最后一个子表达式的值

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/6633.html

Linux下C语言编程基础知识

Material You,安卓设计语言7年以来最大更新

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部