初学者都能掌握的操作符(下)

(1)逗号表达式:

表达式1,表达式2,表达式3,...

整个表达式的值为最后一个表达式的值

(2)下标引用,函数调用以及结构体操作符(\[\] () . 和 ->)

\[\] : 下标引用操作符

常用于数组中,

例如:arr3,arr是数组名,3是索引值

int arr3 = { 1 , 2 , 3 };

() : 函数调用操作符

如:test();

.和-> : 结构体操作符

. :具体写法为 结构体变量.成员

如:定义一个结构体变量,包含姓名,年龄以及分数

cpp 复制代码
#include <stdio.h>
sturct person//定义一个结构体类型包含姓名,年龄,分数
{
  char name[20];
  int age;
  float score;
};
int main()
{
  sturct person a = { "王麻子",25,93.2 };//定义该类型的变量并初始化
  printf("%s",a.name);//结构体变量的使用
  printf("%d",a.age);
  printf("%s",a.float);
  return 0;
}

结构体的作用就是创建一个新的类型,具体小编会在之后的文章介绍,此处先了解即可

接下来让我们了解一下结构体的另外一种写法(指针)
-> : 作用原理和 . 是一样的,如下代码

cpp 复制代码
#include <stdio.h>
sturct person//定义一个结构体类型包含姓名,年龄,分数
{
  char name[20];
  int age;
  float score;
};
void print(struct* a)//调用函数
{
  printf("%s",a->name);//结构体变量的使用,指针类型
  printf("%d",a->age);
  printf("%s",a->float);
}
int main()
{
  sturct person a = { "王麻子",25,93.2 };//定义该类型的变量并初始化
  print(&a);//由于使用的是指针,所以实参写为指针类型即带上&符号
  return 0;
}

(3)各类操作符的优先级

学了这些操作符之后,当面对一些比较复杂的表达式计算的时候,了解他们的结合规律和优先级是必要的

1 圆括号,下标引用 ,. ,->

当一个表达式中有()时,应该首先计算()内的

结合顺序应该时候从左到右

2 非 !、按位取反 ~ 、自增自减 ++,-- 、负号 - 、类型转换 (类型)、指针 * 、取地址 & 、计算字节长度 sizeof

这几类操作符位于第二梯队,结合顺序是从右到左

3 乘、除、取余

结合顺序是从左到右,也就是说当三个操作符同时出现的是时候,从左到右计算

4 加、减

5 左移、右移

6 大于 、小于、大于等于、小于等于

7 等于、不等于

上述四个操作符的结合顺序都是从左到右

8 按位与&

9 按位异或^

10 按位或|

11 逻辑与&&

12 逻辑或||

上述五个操作符的结合顺序也是从左到右

13 条件运算符(? :)

要记住C语言 只有这一个三目操作符!!!

14 赋值运算符

15 逗号表达式

优先级最低

(优先级由高到低)
所有双目运算符中只有赋值运算符的结合方向是从右往左。
另外两个从右往左结合的运算符也很好记,因为它们很特殊:一个是单目运算符,一个是三目运算符。

C语言中有且只有一个三目运算符。
逗号运算符的优先级最低,要记住。
优先级:算术运算符>关系运算符>逻辑运算符>赋值运算符。逻辑运算符中("逻辑非!"除外)

相关推荐
YLCHUP2 小时前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
思麟呀2 小时前
背包DP(01背包+完全背包)
c++·算法
Zwawa3 小时前
让屏幕动起来:OLED动画效果,丝滑光标、帧动画和一只贪吃蛇
c语言·单片机·嵌入式
笑容掩饰我的失落3 小时前
区块链从小白到精通(七):Solidity 语法精讲——数据类型、函数、修饰器与事件
算法·区块链·php·智能合约·哈希算法
Pniubi4 小时前
力扣24. 两两交换链表中的节点(递归)
算法·leetcode·链表
꧁细听勿语情꧂5 小时前
直接选择排序,堆排序,冒泡排序,递归快速排序、hoare版本、挖坑法、lomuto前后指针,非递归快速排序
c语言·开发语言·数据结构·算法
俊俊几年的5 小时前
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
linux·c++·算法·leetcode·嵌入式·动态规划·c
小雉系统14 小时前
BcoreOS安全通信架构:FsSession 抗算法后门安全设计
算法·安全·架构
§ꦿCFོ༉15 小时前
嵌入式八股文—C语言入门学习(四)
c语言·开发语言·学习