操作符详解(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(取值为若森)

相关文章
|
7天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
1天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
6天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
6天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
1115 4
|
9天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
712 2
|
7天前
|
编解码 自然语言处理 文字识别
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
凌晨,Qwen3-VL系列再添新成员——Dense架构的Qwen3-VL-8B、Qwen3-VL-4B 模型,本地部署友好,并完整保留了Qwen3-VL的全部表现,评测指标表现优秀。
588 7
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
|
6天前
|
人工智能 缓存 算法
阿里云AI基础设施成果入选顶级学术会议,显著提升GPU利用率
阿里云提出的GPU池化服务多模型研究成果入选SOSP2025,其创新系统Aegaeon实现token级调度,大幅提升GPU利用率,核心技术已落地百炼平台,显著降低资源消耗。
538 2