操作符详解(2)(上)

简介: 操作符详解(2)(上)

紧接上文,我们将继续进行操作符的讲解


9、条件操作符


条件操作符又叫三目操作符,使用形式如下

那它具体为什么意思呢?

实例应用,求两个数的最大值

1. int a = 5;
2.  int b = 8;
3.  int max = (a > b ? a : b);  //a如果大于b的话会把a赋值给max,如果a不大于b 的话则会把b赋值给max
4.  printf("%d\n", max);

 

10、逗号表达式


逗号表达式,就是用逗号隔开的多个表达式。


逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

 

1.  int a = (1, 2, 3, 5); //逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
2.              //整个表达式的最后是5,5最终赋值给a
3.  printf("%d\n", a);


11、下标引用、函数调用和结构成员


[ ]  下标引用操作符(就是数组使用的下标引用符)

操作数:一个数组名 + 一个索引值


1. int arr[10] = { 1,2,3,4,5,6,7,8,9,10}; //创建数组
2. 
3.  printf("%d\n", arr[5]);    //打印数组下标为5的元素


() 函数调用操作符


函数名(参数)


于函数调用操作符来说,最少有1个操作数

接下来就是我们的结构成员。结构成员与结构体有一定的联系,在我们的C语言中我们存在两种类型。

一种是内置类型:代表的是我们的‘int’和‘char’。

而另一种则是我们的自定义类型:代表的是我们的结构体,枚举,联合体等。

今天我们就讲讲我们的结构体。

结构体是自定义类型,它也被我们称为——聚合类型。那么为什么要有我们的结构体。这是因为我们生活中有些东西写为C语言代码的时候,不能单纯的用内置类型。

我们先看一下结构体关键字:struct

作用:创建不同数据类型的一个集合。它的本质是变量的集合。

语法:


1. struct  TypeName
2. 
3. {
4. 
5. Type1 var1;
6. 
7. Type2 var2;
8. 
9.         ....
10. 
11.         TypeN varN;
12. 
13. };


定义好一个Struct结构体之后,就可以使用了:

比如我们出版一本书,书的话肯定要有书名,要有作者和售价这几样东西,但是它们的类型又不相同。



这时候我们就可以使用结构体,下面就是我们定义的结构体和使用


1. //struct Book
2. //{
3. // char name[30];//成员  书名
4. // char author[20];//作者
5. // float price;//售价
6. //};
7. //
8. //
9. //int main()
10. //{
11. //  struct Book b1 = {"剑来", "烽火戏诸侯", 66.5f};//书
12. //  struct Book b2 = {"不良人", "若森", 88.6f};//书
13. //  printf("%s %s %.1f\n", b1.name, b1.author, b1.price);
14. //  printf("%s %s %.1f\n", b2.name, b2.author, b2.price);
15. //
16. //  //结构体变量.成员名
17. //  return 0;
18. //}


上述代码涉及一个操作符 ,.  操作符用于取值:b1.name,b1.auther,这里的 . 可以理解为的,那么b1.name可理解为b1.name

除了 . 操作符,我们还有->操作符,使用如下


1. //void Print(struct Book * p)
2. //{
3. // printf("%s %s %.1f\n", (*p).name, (*p).author, (*p).price);
4. // printf("%s %s %.1f\n", p->name, p->author, p->price);
5. // //->
6. // //结构指针->成员名
7. //}
8. //
9. //int main()
10. //{
11. //  struct Book b1 = {"剑来", "烽火戏诸侯", 66.5f};//书
12. //  struct Book b2 = { "不良人", "若森", 88.6f };//书
13. //  Print(&b1);
14. //  Print(&b2);
15. //  return 0;
16. //}


->操作符用于指针的取值,(*p).name与p->name的计算结果是相同的

总结

       . 操作符用于取值:b1.name(取值为66.5)

       ->操作符用于指针的取值:p->auther(取值为若森)

相关文章
|
5天前
|
云安全 监控 安全
|
2天前
|
存储 机器学习/深度学习 人工智能
打破硬件壁垒!煎饺App:强悍AI语音工具,为何是豆包AI手机平替?
直接上干货!3000 字以上长文,细节拉满,把核心功能、使用技巧和实测结论全给大家摆明白,读完你就知道这款 “安卓机通用 AI 语音工具"——煎饺App它为何能打破硬件壁垒?它接下来,咱们就深度拆解煎饺 App—— 先给大家扒清楚它的使用逻辑,附上“操作演示”和“🚀快速上手不踩坑 : 4 条核心操作干货(必看)”,跟着走零基础也能快速上手;后续再用真实实测数据,正面硬刚煎饺 App的语音助手口令效果——创建京东「牛奶自动下单神器」口令 ,从修改口令、识别准确率到场景实用性,逐一测试不掺水,最后,再和豆包 AI 手机语音助手的普通版——豆包App对比测试下,简单地谈谈煎饺App的能力边界在哪?
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1174 7
|
1天前
|
人工智能
自动化读取内容,不会写爆款的普通人也能产出好内容,附coze工作流
陌晨分享AI内容二创工作流,通过采集爆款文案、清洗文本、智能改写,实现高效批量生产。五步完成从选题到输出,助力内容创作者提升效率,适合多场景应用。
204 104
|
12天前
|
机器学习/深度学习 人工智能 数据可视化
1秒生图!6B参数如何“以小博大”生成超真实图像?
Z-Image是6B参数开源图像生成模型,仅需16GB显存即可生成媲美百亿级模型的超真实图像,支持中英双语文本渲染与智能编辑,登顶Hugging Face趋势榜,首日下载破50万。
739 42
|
15天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
1180 41
|
3天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
332 12
|
15天前
|
人工智能 前端开发 算法
大厂CIO独家分享:AI如何重塑开发者未来十年
在 AI 时代,若你还在紧盯代码量、执着于全栈工程师的招聘,或者仅凭技术贡献率来评判价值,执着于业务提效的比例而忽略产研价值,你很可能已经被所谓的“常识”困住了脚步。
948 78
大厂CIO独家分享:AI如何重塑开发者未来十年
|
11天前
|
存储 自然语言处理 测试技术
一行代码,让 Elasticsearch 集群瞬间雪崩——5000W 数据压测下的性能避坑全攻略
本文深入剖析 Elasticsearch 中模糊查询的三大陷阱及性能优化方案。通过5000 万级数据量下做了高压测试,用真实数据复刻事故现场,助力开发者规避“查询雪崩”,为您的业务保驾护航。
569 32