C基础第18课--三目运算符和逗号表达式

c语言深度剖析(18)—三目运算符和逗号表达式 1.三目运算符 三目运算符(a?b:c)可以作为逻辑运算的载体 规则:当a的值为真时,返回变量b的值(而不是变量本身);否则返回c的值。(c++中返回变量本身) 三目运算符(a?b:c)的返回类型 通过隐式类型转换规则返回b或c中较高的类型 当b和c不能隐式转换到同一类型时将编译出错 2.编程实验 三目运算符初探 #include <stdio.h> #inclu... 阅读详情

学习自狄泰软件学院唐佐临老师C语言课程,文章中图片取自老师的PPT,仅用于个人笔记。


实验1:三目运算符最后返回的是一个值,而不是变量本身,不可以作为左值使用。但是可返回地址,操作地址。
实验2:三目运算符的返回类型,有疑问,需要提问
实验3:逗号表达式
实验4:逗号表达式的应用,用一行代码实现 strlen,递归调用!!!牛皮!!!


在这里插入图片描述
实验1:三目运算符最后返回的是一个值,而不是变量本身,不可以作为左值使用。但是可返回地址,操作地址。

#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;
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
实验2:三目运算符的返回类型,有疑问,需要提问

printf( “%d\n”, sizeof(c ? c : s) );//4 int ??? 不应该是 short 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) );//4 int ??? 不应该是 short 2吗
    printf( "%d\n", sizeof(i ? i : d) );//8
    printf( "%d\n", sizeof(d ? d : p) ); // error 类型不匹配

    return 0;
}

在这里插入图片描述

在这里插入图片描述

实验3:逗号表达式

#include <stdio.h>

void hello()
{
    printf("Hello!\n");
}

int main()
{   
/*
二维数组的初始化可以按行分段赋值,也可按行连续赋值。

例如,对于数组 a[5][3],按行分段赋值应该写作:
int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
按行连续赋值应该写作:
int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};
这两种赋初值的结果是完全相同的。

这里的写法是逗号表达式,而且逗号表达式的值为最后一个子表达式的值,则变为
2
5
8
*/
    int a[3][3] = {
        (0, 1, 2),
        (3, 4, 5),
        (6, 7, 8)
    };
    
    int i = 0;
    int j = 0;
    

//while 下面是一个逗号表达式
    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;
}

在这里插入图片描述

在这里插入图片描述

基于物联网技术智慧园林绿化养护管理信息平台 近几年来,随着经济不断的发展,城市面积不断的扩大,城市管理中的园林绿化工作也在这种趋势下不断的发生着深刻改变。管养企业是否按制定的管养计划严格执行?绿化事件整改是否及时到位?绿地面积是否在稳步增长?管养的效果如何?如何客观评价管养企业的管养工作?这些都是我们各级管理者需要面对的问题。   智慧园林绿化养护管理信息平台的开发思路以“考核”为核心,整个信息平台体现出“新、快、高、全、享”五个特点。   智慧园林绿化养护管理信息平台的整个开发理念为:依托五大技术手段(全球卫星定位系统技术、地理信... 阅读详情

相关推荐

LC与RC滤波电路实战对比:从原理到选型指南

本文深入对比了LC与RC滤波电路的核心原理与实战应用。LC滤波利用电感与电容的无损能量搬运,适合高频、大电流电源滤波,效率高但需注意谐振风险;RC滤波通过电阻消耗能量实现滤波,结构简单、成本低,适用于低频信号处理或小电流供电场景。文章提供了从工作原理、性能维度到具体选型的完整指南,帮助工程师根据项目需求(如频率范围、负载电流、效率)做出精准选择。

weixin_29240711的博客 499

三目运算符

三目运算符:又称之为条件运算符 格式: 条件表达式?结果A:结果B; 在三目运算符中当条件为真的时候,就会返回结果A 在三目运算符中当条件为假的时候,就会返回结果B 注意点: 三目运算符中?:不能单独出现,要么一起出现,要么一起不出现 ...

ZHY_8643的博客 290

从jieba分词到BERT-wwm——中文自然语言处理(NLP)基础分享系列(12)

今天是本系列的最后一期,完整代码呈现Huggingface transformers平台上微调BERT-wwm-ext的过程方法。

weixin_49518391的博客 3765

三目运算符和逗号表达式

三目运算符(? :) 格式如下: A ? B : C 其等价于: if  (A) B; else C; 例如: # include int main(void) { int i; int a, b; printf("请输入两个数字,中间用空格分隔:"); scanf("%d", &a); scanf("%d", &b); i = (a>b ? prin

百曉生的博客專欄 3592

Aurora8b10b光口通信实战:复位时序与IP核配置详解

本文深入解析了Aurora 8B10B协议在FPGA高速光口通信中的核心实践,重点剖析了确保链路稳定启动的关键复位时序与IP核配置细节。通过详解全双工与单工模式下的复位流程、Vivado中IP核的物理层与链路层参数设置,并结合用户逻辑设计实例,为工程师实现可靠的高速数据传输提供了清晰的实战指南。

weixin_29280219的博客 178

数据库存储分层架构搭建:热数据 SSD 存储、冷数据归档的配置操作及性能对比分析

本文探讨了数据库存储分层架构的优化策略。随着数据量激增,传统单一存储模式面临成本与性能的平衡难题。文章提出通过热数据SSD加速和冷数据归档降本的分层方案,系统分析了热数据SSD配置、冷数据归档操作及性能对比。分层架构基于数据活跃度匹配存储介质,使热数据保持高性能访问,冷数据低成本存储,实现总体成本降低60%-80%的同时确保核心查询性能。文中详细介绍了硬件选型、数据库配置、数据迁移等技术细节,并强调了动态调整分层策略的重要性,为构建高效经济的数据库存储体系提供了完整解决方案。

jingjing45678的博客 1292

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

三目运算符(a ? b : c)可以作为逻辑运算的载体规则:当a 的值为真时,返回b的值 , 否则返回c的值实验1:三目运算符初探​#include 三目运算符(a ? b : c)的返回值类型 ~通过隐式类型转换规则返回b 和 c中的较高类型 ~当b 和c 不能隐式转换到同意类型时将编译出错实验2:三目运算符的返回类型#include 逗号表达式:实验3:逗号表达式实例#include 实例...

weixin_39575170的博客 153

第四章 自定义组件、动画

第三章 自定义组件、动画 (一)自定义View 1.1) onMeasure:对当前View的尺寸进行测量 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) widthMeasureSpec和heightMeasureSpec包含测量模式和尺寸大小 int widthMode = MeasureSpec....

Stay Hungry Stay Foolish 求知若饥 虚心若愚 8133

C语言中三目运算符和逗号表达式

--事物的难度远远低于对事物的恐惧!        前几章节分析了逻辑运算符、位运算符和 ++ --运算符,那么这个章节,我们来分析下三目运算符和逗号表达式。     C语言中的三目运算符表达式格式为:a ? b : c ,其规则为:     -当a的值为真时,返回b的值,否则返回C的值 来看看下边这段代码: #include &lt;stdio.h&gt; int main() {...

年少轻狂,幸福时光 2906

【数据分析生命周期全揭秘】从零开始打造你的数据科学项目 | 最全指南

在当今数据驱动的世界中,数据科学正在颠覆传统行业,成为企业决策和价值创造的重要引擎。然而,如何科学、系统地开展一个数据分析项目?这是很多人关心的核心问题。本篇文章基于经典数据分析课程内容,深入解读数据分析生命周期的每个阶段,让你快速掌握从“发现问题”到“落地应用”的完整流程。如果你正在学习或准备从事数据分析领域,这篇文章一定会对你大有帮助!数据分析生命周期的六大阶段数据分析生命周期的六个阶段相辅相成,每个阶段都至关重要:发现问题:明确需求,提出假设。数据准备:清洗、转换和可视化数据。

AI手套的博客 1741

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

孤寒者的博客 1万+

【c】c语言中逗号运算符和逗号表达式

 刚开始学习C语言时,对逗号去处符和逗号表达式非常困惑,本文给了我很大的帮助。来自:百度空间-软件工程师  C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:  3+5,6+8称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为         表达式1,表达式2逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表

程序人生 1万+

PyTorch生成式人工智能——VQ-VAE详解与实现

VQ-VAE (Vector Quantised-Variational AutoEncoder) 的核心思想就是将 VAE 的连续潜变量离散化。它通过学习一个码本 (Codebook) 来实现这一点,码本是一个包含有限个嵌入向量的字典。模型不是直接输出一个连续的潜在向量,而是从码本中找出与编码器输出最接近的嵌入向量来代替它。本节首先详细讲解 VQ-VAE 的技术原理,然后使用 PyTorch 从零开始实现 VQ-VAE 模型。

盼小辉丶的博客 3333

【C语言进阶剖析】18、三目运算符和逗号表达式

1 三目运算符 三目运算符 (a ? b : c) 可以作为逻辑运算的载体 规则:当 a 的值为真时,返回 b 的值,否则返回 c 的值 下面看一下例子,初识三目运算符? // 18-2.c #include<stdio.h> void hello(){ printf("Hello!\n"); } int main(){ int a[3][3] = { ...

桑凯旋的博客 1551

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

逗号运算符和逗号表达式

C语言提供一种特殊的运算符。用它将两个(或多个)表达式连接起来。 如 3+5,6+8 上式称为逗号表达式。逗号表达式的一般形式为 表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值 例如,上面的逗号表达式“3+5,6+8”的值为14 又如,逗号表达式a=35,a4,对此表达式的求解,赋值运算符的优先级别高于逗号运算符,因此应先求解a=35,经计算和赋值后得到a的值为15,然后求解a4,得60,整个逗号表达式的值为60(a仍为15)。 再如,一个逗号表

寻梦&之璐 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【C语言进阶剖析】18.C语言中的三目运算符和逗号表达式

一、三目运算符 三目运算符( a ? b : c)可以作为逻辑运算的载体 规则:当 a 的值为真时,返回 b 的值;否则返回 c 的值 三目运算符( a ? b : c)的返回类型 通过隐式类型转换规则返回 b 和 c 中的较高类型 当 b 和 c 不能隐式转换到同一类型时将编译出错 二、逗号表达式 逗号表达式是C语言中的“粘贴剂” 逗号表达式用于将多个子表达式连接为一个表达式 逗号表达式的值为最后一个子表达式的值 逗号表达式中的前 N-1 个子表达式可以没有返回值 逗号表达式

老胡的博客 1943

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【C语言进阶深度学习记录】十四 C语言中 三目运算符和逗号表达式

文章目录1 三目运算符1.1 三目运算符的返回类型的代码案例分析2 逗号表达式2.1 逗号表达式代码案例分析2.2 如何用一行代码实现 strlen函数3 总结 1 三目运算符 三目运算符(a?b:c)可以作为逻辑运算的载体 规则: 当a为真时,返回b,否则返回c的值 如下面的代码: #include &amp;lt;stdio.h&amp;gt; int main() { int a = 1;...

厚积薄发 3041

C语言进阶剖析 18 三目运算符和逗号表达式

三目运算符 三目运算符(a ? b : c)可以作为逻辑运算的载体 规则 : 当 a 为真时,返回 b 的值; 否则返回 C 的值 下面的程序运行结束后,a,b,c的值分别会是多少呢? int a = 1; int b = 2; int c = 0; c = a &amp;amp;amp;amp;amp;amp;amp;amp;lt; b ? a : b; (a &amp;amp;amp;amp;amp;amp;amp;amp;lt; b ? a : b) = 3;

Linux Openharmony Android Graphics Stack! 1085

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

注:博客中内容主要来自《狄泰软件学院》,博客仅当私人笔记使用。 测试环境:Ubuntu 10.10 GCC版本:4.4.5 一、三目运算符 1)三目运算符(a?b:c)可以作为逻辑运算符的载体 2)规则:当a的值为真时,返回b的值;否则返回c的值 下面的程序运行结束后, a,b,c的值分别为多少? int a = 1; int b = 2; int c = 0; c ...

第一大剑豪——索隆 474

C语言常见语法——运算符和表达式

自增,自减运算符使用注意及案例 1.++i , --i (在使用 i 之前,先使 i 的值加(减) 1) 2.i++ , i-- (在使用 i 之后,先使 i 的值加(减) 1) 3.int i=3; int i=3,j; j = ++i;// i 的值先变成 4,再赋给j,j的值为4 j = i++;// 先将 i 的值3赋给 j,j的值为 3,然后 i变成4 又如: i=3; ...

qq_36914923的博客 6862

C语言三目运算符和逗号表达式,【C】 18_三目运算符和逗号表达式

三目运算符三目运算符 (a ? b : c) 可以作为逻辑运算的载体规则 : 当 a 为真时,返回 b 的值; 否则返回 C 的值下面的程序运行结束后,a,b,c的值分别会是多少呢?int a = 1;int b = 2;int c = 0;c = a < b ? a : b;(a < b ? a : b) = 3实例分析: 三目运算符初探#include int main(){int...

weixin_42536058的博客 279

C语言中逗号运算符和逗号表达式!

C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:   3+5,6+8 称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为          表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式   a=3*5,a*4 对此表...

HUYA69的博客 1977

【C语言学习记录18】三目运算符和逗号表达式

三目运算符(a ? b : c) 三目运算符(a ? b : c)可以作为逻辑运算的载体; 规则:当a的值为真时,返回b的值;否则返回c的值。 三目运算符不可以当作左值使用。三目运算符返回值为一个值,而不是变量本身。 小技巧: 这里可以用地址来解决,因为变量的地址就是一个值。 *(a < b ? &a : &b)= 3; 三目运算符(a ? b : c)的返...

haibing_x的博客 328

复习c语言深度剖析(18)—三目运算符和逗号表达式

1. 三目运算符 三目运算符(a?b:c)可以作为逻辑运算的载体 规则:当a的值为真时,返回变量b的值(而不是变量本身);否则返回c的值。(c++中返回变量本身) 三目运算符(a?b:c)的返回类型 通过隐式类型转换规则返回b或c中较高的类型 当b和c不能隐式转换到同一类型时将编译出错 2.编程实验 三目运算符初探 #include <stdio.h> #include &l...

weixin_43478148的博客 276

C语言进阶课程学习记录-第18课 - 三目运算符和逗号表达式

本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图片全部来源于课程PPT,仅用于个人学习记录。逗号表达式按照从左向右的顺序计算每个子表达式的值。三目运算符通过隐式类型转换规则确认返回值类型。三目运算符返回变量的值,而不是变量本身。逗号表达式的值为最后一一个子表达式的值。

qq_35429166的博客 395

17_++和--操作符分析 & 18_三目运算符和逗号表达式

17_++和–操作符分析 1、++和–分析 ++和–操作符分别对应着两条汇编指令; 前置:变量自增(减)1,取变量值; 后置:取变量值,变量自增(减)1; 程序示例: #include <stdio.h> int main() { int i = 0; int r = 0; r = (i++) + (i++) + (i++); printf("i = %d\n", i); printf("r = %d\n", r); r = (+

chenqiang_ace的博客 304
上一篇: C基础第17课 ++和--操作符分析
下一篇: Makefile9--函数定义及调用
Ma浩然
博客等级 码龄9年 1万+粉丝 462原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ma浩然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值