C语言中操作符详解(下)

C语言中操作符详解_下

  • 放在最前面的
  • 1、条件操作符(三目操作符)
    • 1.1、定义
    • 1.2、举例分析:(上代码)
        • 输出结果:
        • 代码的解释:
  • 2、逗号表达式
    • 2.1、定义
    • 2.2、举例分析:(上代码)
        • 输出结果:
  • 3、下标引用操作符([ ])
    • 3.1、定义和语法
    • 3.2、举例分析:(上代码)
        • 输出结果:
  • 4、函数调用
    • 4.1、定义和语法
    • 4.2、举例分析:(上代码)
        • 输出结果:
  • 5、结构成员访问操作符 1(.(小数点))
    • 5.1、定义和语法
    • 5.2、举例分析:(上代码)
        • 输出结果:
  • 6、结构成员访问操作符 2( ->(箭头操作符))
    • 6.1、定义和语法
    • 6.2、举例分析:(上代码)
        • 输出结果:
  • END

放在最前面的

🎈 🎈
我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼
🎉🎉我的C语言初阶合集:C语言初阶合集,希望能帮到你!!!😍
😍 👋🏼🎉🎊创作不易,欢迎大家留言、点赞加收藏!!! 🥳😁😍

1、条件操作符(三目操作符)

1.1、定义

C语言中的 条件操作符,也被称为三目操作符(ternary operator),
是一种简洁的条件判断语句,用于根据一个 布尔表达式的值 来选择两个值中的一个。

  • 语法格式:
condition ? expr1 : expr2;

这里,condition 是一个表达式,其计算结果为 true(非零)或 false(零)。
如果 condition 的结果为 true,则整个条件表达式的值为 expr1 的值;
如果 condition 的结果为 false,则整个条件表达式的值为 expr2 的值。

1.2、举例分析:(上代码)

#include <stdio.h>int main() 
{int a = 10;int b = 20;int max = 0;// 使用三目操作符找到两个数中的较大值max = (a > b) ? a : b;//输出printf("The larger of %d and %d is %d\n", a, b, max);return 0;
}
输出结果:

代码的解释:
max = (a > b) ? a : b;

这里,(a > b) 是条件表达式,如果 a 大于 b,则结果为 true,此时 max 被赋值为 a;
如果 a 不大于 b(即 a <= b),则结果为 false,此时 max 被赋值为 b。

2、逗号表达式

2.1、定义

在C语言中,逗号表达式(Comma Expression)是一种使用逗号(,)作为操作符的表达式
逗号操作符将两个表达式连接在一起,并依次计算这两个表达式,但整个逗号表达式的值是最右边那个表达式的值
逗号操作符的优先级非常低,只高于赋值操作符(=)和逗号操作符自身。

2.2、举例分析:(上代码)

#include <stdio.h>int main() 
{int a = 0;int b = 0;int c = 0;//在这个例子中,我们有一个逗号表达式 (a += 1, b += 2)。//首先,a 的值增加 1,然后 b 的值增加 2。//整个逗号表达式的值是 b += 2 的结果,即 b 的新值。//因此,c 被赋值为 b 的新值。c = (a += 1, b += 2);printf("a = %d, b = %d, c = %d\n", a, b, c);return 0;
}
输出结果:

3、下标引用操作符([ ])

3.1、定义和语法

a. 定义:

下标引用 用于访问 数组中的元素。

b. 语法:

array_name[index]

这里,array_name 是数组的名称,index 是要访问的元素的索引。

3.2、举例分析:(上代码)

#include <stdio.h>int main() 
{//定义一个包含5个整数的数组 arrint arr[5] = { 1, 2, 3, 4, 5 };//索引  依次是 0  1  2  3  4int ret = arr[2]; // 访问索引为2的元素,即值为3//输出printf("ret =  %d\n", ret);return 0;
}
输出结果:

4、函数调用

4.1、定义和语法

a. 定义:

函数调用 用于执行函数体中的代码。
在C语言中,函数 是执行特定任务的代码块,
可以通过函数调用来执行这些任务。

b. 语法:

function_name(arguments)

这里,function_name 是函数的名称,arguments 是传递给函数的参数(如果有的话)。

4.2、举例分析:(上代码)

#include <stdio.h>//定义一个简单的函数,用于打印两个整数的和
//我们定义了一个名为 Sum 的函数,
//它接受两个整数参数并打印它们的和。
void Sum(int a, int b) 
{//输出printf("The sum of %d and %d is: %d\n", a, b, a + b);
}int main() 
{int x = 5;int y = 10;// 调用函数,传递x和y作为参数Sum(x, y); return 0;
}
输出结果:

5、结构成员访问操作符 1(.(小数点))

5.1、定义和语法

a. 定义:

结构成员访问用于访问结构体中的字段。
在C语言中,结构体是一种用户定义的数据类型,可以包含多个不同类型的字段。

b.语法(使用点操作符 访问结构体成员):

structure_variable.member_name

这里,structure_variable 是结构体变量的名称,member_name 是要访问的结构体成员的名称。

5.2、举例分析:(上代码)

#include <stdio.h>
#include <string.h>// 定义一个结构体类型,用于表示一个学生的信息
struct Stu
{char name[50];int age;
};int main() 
{struct Stu s1; // 声明一个结构体变量// 为结构体成员赋值strcpy(s1.name, "Alice"); // 注意:需要包含string.h头文件来使用strcpy函数s1.age = 30;// 访问并打印结构体成员的值printf("Name: %s, Age: %d\n",s1.name,s1.age);return 0;
}
输出结果:

在这里插入图片描述

6、结构成员访问操作符 2( ->(箭头操作符))

6.1、定义和语法

a. 定义:

通过指针来访问结构体的成员变量,这在处理结构体数组或动态分配的结构体时特别有用。
当使用指针访问结构体成员时,我们使用的是箭头操作符(->)。

b.语法(使用箭头操作符 访问结构体成员):

pointer_to_structure -> member_name

这里,pointer_to_structure 是一个指向结构体的指针,member_name 是要访问的结构体成员的名称。

箭头操作符实际上是解引用操作符(*)和点操作符(.)的组合简写。
也就是说,
pointer_to_structure -> member_name
等价于 (*pointer_to_structure).member_name。

6.2、举例分析:(上代码)

#include <stdio.h>
#include <string.h>// 定义一个结构体类型,用于表示一个学生的信息
struct Stu
{char name[50];int age;
};int main() 
{// 创建一个Stu结构体变量struct Stu s1;// 创建一个指向Stu结构体变量的指针struct Stu* pStu = &s1;// 通过指针使用箭头操作符为结构体成员赋值strcpy(pStu->name, "Bob"); // 使用箭头操作符覆盖之前的name值pStu->age = 25; // 使用箭头操作符覆盖之前的age值// 访问并打印结构体成员的值printf("Name: %s, Age: %d\n", pStu->name, pStu->age);return 0;
}
输出结果:

END

每天都在学习的路上!
On The Way Of Learning

“文章已读完📖,你是不是也和我一样有很多感触呢😃?
欢迎在评论区留言哦😘。
你的每一条留言都是对我最大的支持和鼓励💪,也会让这个交流空间更加丰富多彩🌈🎉!”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14981.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

渐进式JavaScript框架Vue 3 入门

目录 前言1. Vue 3 的基础入门1.1 什么是 Vue.js1.2 局部使用 Vue 2. Vue 3 的基本配置2.1 准备 HTML 页面并引入 Vue 模块2.2 创建 Vue 应用实例 3. Vue 的数据绑定与界面渲染3.1 插值表达式 4. 常用指令详解4.1 v-for 指令&#xff1a;列表渲染4.2 v-bind 指令&#xff1a;绑…

LeetCode105.从前序与中序遍历构造二叉树

题目要求 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 提示: 1 < preorder.length < 3000inorder.length preorder.length-3000 < pr…

css-50 Projects in 50 Days(3)

html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>旋转页面</title><link rel"sty…

基于STM32单片机多路无线射频抢答器

目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 三、实物设计图 四、程序源代码设计 五、资料内容 前言 随着科技的不断进步和各类竞赛活动的日益增多&#xff0c;抢答器作为一种重要的竞…

【Linux】多线程(中)

目录 一、线程互斥 1.1 互斥概念 1.2 互斥量mutex 1.3 互斥量相关API &#xff08;1&#xff09;初始化互斥量 &#xff08;2&#xff09;销毁互斥量 &#xff08;3&#xff09;互斥量加锁和解锁 1.4 互斥量原理 1.5 重入和线程安全 二、死锁 2.1 概念 2.2 造成死锁…

光控资本:什么是庄家洗盘和出货?各有什么特征?

什么是庄家洗盘和出货&#xff1f; 庄家洗盘&#xff1a;庄家洗盘是指庄家使用其筹码优势来作出一些K线图形&#xff0c;进而引起市场上的散户投资者的惊惧&#xff0c;然后洗掉散户手中的起浮筹码&#xff0c;使盘面更加安稳&#xff0c;减轻股票后期拉升压力的行为。 庄家洗…

【Vue3】知识汇总,附详细定义和源码详解,后续出微信小程序项目(5)

快速跳转&#xff1a; 我的个人博客主页&#x1f449;&#xff1a;Reuuse博客 新开专栏&#x1f449;&#xff1a;Vue3专栏 参考文献&#x1f449;&#xff1a;uniapp官网 免费图标&#x1f449;&#xff1a;阿里巴巴矢量图标库 ❀ 感谢支持&#xff01;☀ 前情提要 &#x…

5ire:开源AI工具的新纪元

抖知书老师推荐&#xff1a; 在AI技术飞速发展的今天&#xff0c;5ire作为一款开源的AI工具&#xff0c;已经悄然改变了我们对传统AI工具的认知。那些曾对AI技术抱有疑虑的人们&#xff0c;现在可以更加自信地拥抱这一变革。原本担心工作会被AI取代的忧虑逐渐平息&#xff0c;…

Unity图形学之Shader2.0矩阵变换

1.将物体坐标系 变换 到世界坐标系&#xff1a; Unity3D里面矩阵是左乘的 P(世界) M(物体到世界的变换矩阵) * P(物体) 规律&#xff1a;3D变换 首先将物体坐标系变换到世界 2.将 世界坐标 变换 到相机坐标 P(相机) M(世界到相机的变换矩阵) * P(世界) using System.Col…

网上商城系统设计与Spring Boot框架

3 系统分析 当用户确定开发一款程序时&#xff0c;是需要遵循下面的顺序进行工作&#xff0c;概括为&#xff1a;系统分析–>系统设计–>系统开发–>系统测试&#xff0c;无论这个过程是否有变更或者迭代&#xff0c;都是按照这样的顺序开展工作的。系统分析就是分析系…

JavaWeb-JSP

可以写java代码也前端代码 jsp本来就是Serclet jsp脚本 EL表达式 要将jsp获取的东西放到域中 转发到/el-demo.jsp中 jsp中用&#xffe5;{}获取域中的信息 JSTL标签 c&#xff1a;if标签 jsp中 c:forEach标签 MVC 查询所有 在service层实现 Servlet代码&#xff1a;1.创建Br…

Area-Composition模型部署指南

一、介绍 本模型可以通过输入不同的提示词&#xff0c;然后根据各部分提示词进行融合生成图片。如下图&#xff1a; 此图像包含 4 个不同的区域&#xff1a;夜晚、傍晚、白天、早晨 二、部署 环境要求&#xff1a; 最低显存&#xff1a;10G 1. 部署ComfyUI 本篇的模型部署…

经典文献阅读之--DROID-SLAM(完美的深度学习slam框架)

0. 简介 深度学习和SLAM现在结合越来越紧密了&#xff0c;但是实际上很多时候深度学习只会作为一个block放在slam系统中。而很多深度学习slam算法&#xff0c;在slam这边的性能都不是太好&#xff0c;尤其是回环和全局优化这块。因为有一些深度学习的工作就不太适合做回环检测…

【windows 下使用 tree】

windows git bash 下使用 tree 下载tree二进制文件 https://gnuwin32.sourceforge.net/packages/tree.htm 解压缩找到 tree.exe 扔进git bash的命令目录 C:\Program Files\Git\usr\bin 打开测试

GxtWaitCursor:Qt下基于RAII的鼠标等待光标类

有时我们需要以阻塞的方式执行一点耗时的操作&#xff0c;这时需要主窗口光标呈现忙状态&#xff0c;GxtWaitCursor正是为此设计&#xff1b;重载的构造函数&#xff0c;可以让光标呈现忙状态一定时间后自动恢复。 GxtWaitCursor.h #pragma once#include <QObject>// // …

通过Python,Tkinter,文本文件,Openpyxl。实现【图书馆管理系统实现技术】

图书馆管理系统 目录 项目概述类定义 -Book类 -Library类书籍管理功能 -添加书籍 -查找书籍 -借阅书籍 -归还书籍 -列出所有书籍数据持久化 -保存书籍 -加载书籍操作日志记录图形用户界面(GUI) -界面设计 -功能实现代码原理总结实现界面 ![](https://i-blog.csdnimg.cn/dire…

飞牛私有云访问外网

飞牛私有云 fnOS NAS 是一款有着卓越的性能以及强大的兼容性和智能化的管理界面&#xff0c;它之所以能在 NAS 市场中脱颖而出&#xff0c;是因为 fnOS 基于最新的 Linux 内核&#xff08;Debian发行版&#xff09;深度开发&#xff0c;不仅兼容主流 x86 硬件&#xff0c;还支持…

HTML之表单学习记录

如果一个页面仅仅供用户浏览&#xff0c;那就是静态页面。如果这个页面还能实现与服务器进行数据交互&#xff08;像注册登录、话费充值、评论交流&#xff09;​&#xff0c;那就是动态页面。表单是我们接触动态页面的第一步。其中表单最重要的作用就是&#xff1a;在浏览器端…

redis 原理篇 30 redis内存回收 过期key处理

三十分&#xff0c;又是一个长视频&#xff0c;挺好&#xff0c;但是从标题来看&#xff0c;内容应该很简单&#xff0c;或者说&#xff0c;是他能讲简单的类型&#xff0c;本来还想再搞一篇&#xff0c;但是三十分钟的话&#xff0c;五点五十了&#xff0c;算了&#xff0c;下…

【STM32F1】——无线收发模块RF200与串口通信

【STM32F1】——无线收发模块RF200与串口通信 一、简介 本篇主要对调试无线收发模块RF200的过程进行总结,实现了以下功能。 串口普通收发:使用STM32F103C8T6的USART2串口接收中断,实现两个无线收发模块RF200间的通信。二、RF200介绍 电压:3.4-5.5V工作频率:418~455MHz发…