操作符详解

简介: 操作符详解

进制与进制转化

十进制

1. 10进制中满10进1。

2. 10进制的数字每⼀位都是0~9的数字组成。

例如:123=1*10^(3-1)+2*10^(2-1)+3*10^(1-1)

二进制

1. 2进制中满2进1。

2. 2进制的数字每⼀位都是0~1的数字组成。

例如:1101=1*2^(4-1)+1*2^(3-1)+0*2^(2-1)+1*2^(1-1)

十六进制

1. 16进制的数字每⼀位是0~9,a ~f 。

2. 16进制表示的时候前面加0X。

十进制转化成二进制

二进制转化成八进制

1. 在2进制转8进制数的时候,从2进制序列中,右边低位开始向左每3个2进制位会换算⼀个8进制位,剩余不够3个2进制位的直接换算。

2. 0开头的数字,会被当做8进制。

逗号表达式

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

2. 逗号表达式,从左向右依次执行。

3. 整个表达式的结果是最后⼀个表达式的结果。

//代码1
int a = 1;
int b = 2;
int c = (a>b, a=b+10, a, b=a+1);//逗号表达式
c是多少?//13
 
//代码2
if (a =b + 1, c=a / 2, d > 0)//执行

下标访问与函数调用

[ ] 下标引用操作符

int arr[10];//创建数组
arr[9] = 10;//实⽤下标引⽤操作符。
[ ]的两个操作数是arr和9。

()函数调用操作符

#include <stdio.h>
void test1()
{
 printf("hehe\n");
}
void test2(const char *str)
{
 printf("%s\n", str);
}
int main()
{
 test1(); //这⾥的()就是作为函数调⽤操作符。
 test2("hello bit.");//这⾥的()就是函数调⽤操作符。
 return 0;
}

结构成员访问操作符

结构体概念

1. 结构是⼀些值的集合,这些值称为成员变量

2. 结构的每个成员可以是不同类型的变量,如: 标量、数组、指针,甚至是其他结构体。

结构的声明

struct student
{
    char name[20];
    char sex[10];
    int age;
    char id[16];
}s4,s5,s6;//s4,s5,s6都是全局变量
struct student s7 //s7是全局变量
int main()
{
    struct student s1;
    struct student s2;
    struct student s3;
    //s1,s2,s3都是局部变量
}

结构体变量初始化与打印

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  struct point
  {
    int x;
    int y;
  };
  struct point s1 = { 1,2 };//相同类型初始化
  printf("%d %d\n", s1.x, s1.y);//打印结构体
 
  struct student
  {
    char name[20];
    int age;
    char male[15];
    int id;
  };
  struct student p1 = { "黄舜禹",19,"男",202366 };//不同类型初始化
  struct student p2 = { .name = "黄舜禹2",.age = 18,.male = "女",.id = 202367 };//指定顺序初始化
  printf("%s %d %s %d\n", p1.name, p1.age, p1.male, p2.id);//打印结构体
 
  struct node
  {
    int num;
    struct point;
    struct student;
  };
  struct node w1= { 20,{1,2},{ "黄舜禹",19,"男",20231111066 }};//结构体嵌套初始化
  return 0;
}

操作符的属性

优先级

1. 如果⼀个表达式包含多个运算符,哪个运算符应该优先执行,各种运算符的优先级是 不⼀样的。

2. 记住常用的几个操作符优先级即可。

1.圆括号( () )
2.⾃增运算符( ++ ),⾃减运算符( -- )
3.单⽬运算符( + 和 - )
4.乘法( * ),除法( / )
5.加法( + ),减法( - )
6.关系运算符( < 、 > 等)
7.赋值运算符( = )

结合性

1. 如果两个运算符优先级相同,优先级没办法确定先计算哪个了,这时候就看结合性了,则根据运算符是左结合,还是右结合,决定执行顺序。

2. 大部分运算符是左结合(从左到右执行),少数运算符是右结合(从右到左执行),比如赋值运算符( = )。

相关文章
|
存储 数据安全/隐私保护
RPMB说明与使用(Replay Protected Memory Block)
RPMB说明与使用(Replay Protected Memory Block)
3977 0
|
11月前
|
C语言
扫雷游戏(用C语言实现)
扫雷游戏(用C语言实现)
214 0
|
11月前
|
JSON 数据处理 Go
一文教会你如何使用 iLogtail SPL 处理日志
iLogtail 作为日志、时序数据采集器,在 2.0 版本中,全面支持了 SPL 。本文对处理插件进行了梳理,介绍了如何编写 SPL 语句,从插件处理模式迁移到 2.0 版本的 SPL 处理模式,帮助用户实现更加灵活的端上数据处理。
757 117
|
存储 前端开发 安全
JavaScript进阶 - 浏览器存储:localStorage, sessionStorage, cookies
【7月更文挑战第2天】探索Web存储:localStorage持久化,sessionStorage会话限定,cookies则伴随HTTP请求。了解它们的特性和限制,如localStorage的5MB容量限制、跨域问题,sessionStorage的生命周期,及cookies的安全与带宽消耗。使用时需权衡安全、效率与应用场景。示例代码展示存储与检索方法。
896 2
|
11月前
|
缓存 监控 NoSQL
阿里二面: BigKey、HotKey 问题严重,该如何 预防和解决
BigKey(大key)和HotKey(热key)的问题是较常见。 这类问题不止会使服务的性能下降,还会影响用户正常使用功能,甚至会造成大范围的服务故障,故障有时还会发生连环效应,导致更加严重的后果,发生系统的雪崩,**造成巨大的经济损失,巨大的品牌损伤
阿里二面: BigKey、HotKey 问题严重,该如何 预防和解决
ly~
|
11月前
|
存储 安全 生物认证
如何防止密码重用?
本文介绍了防止密码重用的综合措施,包括用户教育与意识提升、技术手段支持和系统设计与策略引导。通过定期的安全培训、安全提示与宣传,增强用户的安全意识;推荐使用密码管理器和账户关联检测技术,帮助用户管理复杂密码;实施多因素身份验证和密码强度检查,确保系统的安全性。
ly~
317 5
|
11月前
|
人工智能 自然语言处理 语音技术
利用Python进行自然语言处理(NLP)
利用Python进行自然语言处理(NLP)
241 3
|
11月前
|
JavaScript 网络架构
Vue中实现分布式动态路由:基础步骤详解
Vue中实现分布式动态路由:基础步骤详解
103 2
|
11月前
|
搜索推荐 安全 数据挖掘
如何利用商品详情数据挖掘消费者的潜在需求?
本文介绍了利用商品详情数据挖掘消费者潜在需求的六种方法,包括分析商品属性信息、研究消费者评价反馈、关注搜索浏览行为、对比竞争对手数据、分析购买行为及利用数据挖掘技术进行综合分析,旨在帮助企业精准捕捉市场需求,优化产品和服务。
|
11月前
|
安全
闭包有哪些优缺点呢
【10月更文挑战第12天】闭包有哪些优缺点呢