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

相关文章
|
4天前
|
JavaScript 前端开发 Java
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
|
4天前
|
存储 C语言
C learning_12 操作符前篇(算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符)
C learning_12 操作符前篇(算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符)
|
4天前
|
编译器 C++ 索引
C learning_13 操作符前篇(条件操作符、 逗号表达式、 下标引用、函数调用和结构成员、 表达式求值)
C learning_13 操作符前篇(条件操作符、 逗号表达式、 下标引用、函数调用和结构成员、 表达式求值)
|
10月前
|
存储
操作符详解(1)(下)
操作符详解(1)(下)
|
9月前
|
编译器 C语言 C++
【C语言】 操作符(上): -- 算数 -- 移位 -- 位操作符 -- 赋值 -- 单目 -- 关系 -- 逻辑操作符2
【C语言】 操作符(上): -- 算数 -- 移位 -- 位操作符 -- 赋值 -- 单目 -- 关系 -- 逻辑操作符2
|
7月前
|
索引
操作符之关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用操作符,函数调用操作符,访问结构体成员操作符
操作符之关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用操作符,函数调用操作符,访问结构体成员操作符
|
7月前
|
编译器 C语言
操作符的属性,C语言中运算符的优先性和结合性,常见的问题表达式
操作符的属性,C语言中运算符的优先性和结合性,常见的问题表达式
|
9月前
|
存储 Serverless C语言
【C语言】 操作符(上): -- 算数 -- 移位 -- 位操作符 -- 赋值 -- 单目 -- 关系 -- 逻辑操作符3
【C语言】 操作符(上): -- 算数 -- 移位 -- 位操作符 -- 赋值 -- 单目 -- 关系 -- 逻辑操作符3
|
10月前
|
编译器 C语言
操作符详解(2)(下)
操作符详解(2)(下)
|
10月前
|
存储
操作符详解(1)(上)
操作符详解(1)(上)