九大运算符详解

目录

前言

一.算数运算符

1.1 算数运算符

1.2 算数运算案例

 二.关系运算符

2.1关系运算符

2.2 关系运算案例

三.逻辑运算符

3.1 逻辑运算符

3.2 逻辑运算案例

 四.位运算符

4.1 位运算符

4.2 位运算符案例

五.赋值运算符

5.1 赋值运算符

5.2 赋值运算符案例

六. 杂项运算符

6.1 杂项运算符

6.2 杂项运算符案例

七. 指针运算符

7.1 指针运算符

7.2 指针运算符案例

八.求字节数运算符

8.1 求字节数运算符

九.特殊运算符

9.1特殊运算符


前言

C语言中的运算符主要可以分为以下几种类型:

  1. 算术运算符:用于执行数学计算,如加法、减法、乘法和除法等。
  2. 关系运算符:用于比较两个值之间的关系,例如等于、不等于、大于、小于、大于等于和小于等于。
  3. 逻辑运算符:用于连接多个条件判断,包括逻辑与、逻辑或和逻辑非。
  4. 位运算符:用于按位操作整数类型的数据,如位与、位或、位异或、位取反以及移位运算符。
  5. 赋值运算符:用于给变量赋值,除了基本的赋值外,还包括复合赋值运算符,如加赋值、减赋值等。
  6. 杂项运算符:这一类包括了其他一些特殊的运算符,如条件运算符(三元运算符)、逗号运算符和 sizeof 运算符等。
  7. 指针运算符:包括取地址运算符和取内容运算符。
  8. 求字节数运算符:用于计算数据类型或对象所占用的内存大小。
  9. 特殊运算符:可能指的是一些不常见的或者是特定编译器支持的运算符。

这些运算符在编写C语言程序时起着至关重要的作用,它们使得程序员能够以更简洁的方式表达复杂的操作。了解和掌握这些运算符的使用是学习C语言的基础。

一.算数运算符

1.1 算数运算符

C语言中的算术运算符包括以下几种:

  1. 加法(+):用于两个数值的相加。
  2. 减法(-):用于两个数值的相减或者一个数值与负数的相加。
  3. 乘法(*):用于两个数值的相乘。
  4. 除法(/):用于两个数值的相除,结果为商。
  5. 取模(%):用于两个数值相除后的余数。
  6. 自增(++):用于将变量的值增加1,可以是前缀或后缀形式。
  7. 自减(--):用于将变量的值减少1,可以是前缀或后缀形式。

这些运算符是编程中进行数学计算的基础,它们可以单独使用,也可以与其他运算符结合使用,形成复杂的表达式。在编写程序时,了解它们的优先级和结合性是非常重要的,这有助于正确理解和计算表达式的结果。

1.2 算数运算案例

  1. 加法(+):用于两个数值的相加。
  2. 减法(-):用于两个数值的相减或者一个数值与负数的相加。
  3. 乘法(*):用于两个数值的相乘。
  4. 除法(/):用于两个数值的相除,结果为商。
  5. 取模(%):用于两个数值相除后的余数。
  6. 自增(++):用于将变量的值增加1,可以是前缀或后缀形式。
  7. 自减(--):用于将变量的值减少1,可以是前缀或后缀形式。
int a = 5;
int b = 3;
int sum = a + b; // sum 的值为 8int a = 5;
int b = 3;
int difference = a - b; // difference 的值为 2int a = 5;
int b = 3;
int product = a * b; // product 的值为 15int a = 6;
int b = 3;
int quotient = a / b; // quotient 的值为 2int a = 6;
int b = 3;
int remainder = a % b; // remainder 的值为 0int a = 5;
++a; // a 的值变为 6int a = 5;
a++; // a 的值变为 6int a = 5;
--a; // a 的值变为 4int a = 5;
a--; // a 的值变为 4

 二.关系运算符

2.1关系运算符

C语言中的关系运算符用于比较两个值之间的关系,包括以下几种:

  1. 等于(==):检查两个值是否相等。
  2. 不等于(!=):检查两个值是否不相等。
  3. 大于(>):检查左边的值是否大于右边的值。
  4. 小于(<):检查左边的值是否小于右边的值。
  5. 大于等于(>=):检查左边的值是否大于或等于右边的值。
  6. 小于等于(<=):检查左边的值是否小于或等于右边的值。

关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<<=>>=的优先级相同,高于==!=,而==!=的优先级相同。

在C语言中,关系运算符的结果通常用整数表示,其中1代表真(即表达式关系成立),0代表假(即表达式关系不成立)。例如,1 > 2的结果是0,因为1不大于2;而1 < 2的结果是1,因为1小于2。

这些关系运算符通常用于控制流程语句中,如if条件语句和循环语句中,以根据不同的条件执行不同的代码分支。通过组合这些关系运算符,可以构建复杂的条件表达式来满足程序逻辑的需求。

2.2 关系运算案例

  1. 等于(==):检查两个值是否相等。
  2. 不等于(!=):检查两个值是否不相等。
  3. 大于(>):检查左边的值是否大于右边的值。
  4. 小于(<):检查左边的值是否小于右边的值。
  5. 大于等于(>=):检查左边的值是否大于或等于右边的值。
  6. 小于等于(<=):检查左边的值是否小于或等于右边的值。
    int a = 5;
    int b = 3;
    int result = (a == b); // result 的值为 0,因为 5 不等于 3int a = 5;
    int b = 3;
    int result = (a != b); // result 的值为 1,因为 5 不等于 3int a = 5;
    int b = 3;
    int result = (a > b); // result 的值为 1,因为 5 大于 3int a = 5;
    int b = 3;
    int result = (a < b); // result 的值为 0,因为 5 不小于 3int a = 5;
    int b = 3;
    int result = (a >= b); // result 的值为 1,因为 5 大于或等于 3int a = 5;
    int b = 3;
    int result = (a <= b); // result 的值为 0,因为 5 不小于或等于 3
    

三.逻辑运算符

3.1 逻辑运算符

C语言中的逻辑运算符用于连接或反转条件表达式的真假值,主要包括以下几种:

  1. 逻辑与(&&):当两个操作数都为真时,结果为真;否则为假。具有短路特性,即如果第一个操作数为假,则不会计算第二个操作数。
  2. 逻辑或(||):当至少一个操作数为真时,结果为真;如果两个操作数都为假,则结果为假。同样具有短路特性,即如果第一个操作数为真,则不会计算第二个操作数。
  3. 逻辑非(!):用于反转操作数的逻辑状态,即真变假,假变真。

这些逻辑运算符通常用于构建复杂的条件表达式,可以简化if-else语句,使得程序代码更加简洁和高效。例如,使用逻辑与可以判断两个条件是否同时满足,而逻辑或则用于判断多个条件中是否有至少一个满足。逻辑非用于否定一个条件,常用于if语句中的条件取反。

在实际编程中,逻辑运算符的应用非常广泛,它们可以帮助程序员表达复杂的逻辑关系,是编写控制流程不可或缺的工具。了解并掌握这些逻辑运算符的使用对于学习C语言至关重要。

3.2 逻辑运算案例

  1. 逻辑与(&&)
  2. 逻辑或(||)
  3. 逻辑非(!)
    int a = 5;
    int b = 3;
    int result = (a > 2) && (b < 4); // result 的值为 1,因为 5 大于 2 且 3 小于 4int a = 5;
    int b = 3;
    int result = (a > 6) || (b < 4); // result 的值为 1,因为 5 不大于 6,但 3 小于 4int a = 5;
    int result = !(a > 2); // result 的值为 0,因为 5 大于 2,取反后为假
    

 四.位运算符

4.1 位运算符

C语言中的位运算符用于对二进制位进行操作,可以高效地完成诸如设置位、清除位、翻转位、检查位等操作。以下是C语言中主要的六种位运算符:

  1. 按位与(&):用于将两个数的对应位进行逻辑与操作。如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。它通常用于清零或屏蔽某些位。
  2. 按位或(|):用于将两个数的对应位进行逻辑或操作。如果两个相应的二进制位中至少有一个为1,则该位的结果值为1,否则为0。它通常用于设置某些位。
  3. 按位异或(^):用于将两个数的对应位进行逻辑异或操作。如果两个相应的二进制位相异(一个为1,一个为0),则该位的结果值为1,否则为0。它通常用于切换某些位的状态。
  4. 按位取反(~):这是一个单目运算符,用于将数的所有位取反。即1变为0,0变为1。
  5. 左移(<<):用于将数的位向左移动指定的位数。左移一位相当于将该数乘以2。
  6. 右移(>>):用于将数的位向右移动指定的位数。右移一位通常相当于将该数除以2。

需要注意的是,位运算符的操作数是按位进行计算的,不同于算术运算符的按值计算。在C语言中,位运算符的优先级高于逻辑运算符和算术运算符,但低于关系运算符。了解这些位运算符的使用可以帮助编写更高效的代码,特别是在处理底层硬件操作或进行优化时。

4.2 位运算符案例

  1. 按位与(&)
  2. 按位或(|)
  3. 按位异或(^)
  4. 按位取反(~)
  5. 左移(<<)
  6. 右移(>>)
    int a = 5; // 二进制表示为 0101
    int b = 3; // 二进制表示为 0011
    int result = (a & b); // result 的值为 1,因为 0101 & 0011 = 0001int a = 5; // 二进制表示为 0101
    int b = 3; // 二进制表示为 0011
    int result = (a | b); // result 的值为 7,因为 0101 | 0011 = 0111int a = 5; // 二进制表示为 0101
    int b = 3; // 二进制表示为 0011
    int result = (a ^ b); // result 的值为 6,因为 0101 ^ 0011 = 0110int a = 5; // 二进制表示为 0101
    int result = (~a); // result 的值为 -6,因为 ~0101 = 1010,即-6int a = 5; // 二进制表示为 0101
    int result = (a << 2); // result 的值为 20,因为 0101 << 2 = 10100,即20int a = 5; // 二进制表示为 0101
    int result = (a >> 2); // result 的值为 1,因为 0101 >> 2 = 0001,即1
    

五.赋值运算符

5.1 赋值运算符

C语言中的赋值运算符用于将一个值赋给变量。以下是C语言中主要的五种赋值运算符:

  1. 等于(=):用于将右侧的值赋给左侧的变量。例如,a = 5;表示将整数5赋给变量a。
  2. 加等于(+=):用于将右侧的值与左侧变量的当前值相加,并将结果赋给左侧变量。例如,a += 3;表示将整数3与变量a的当前值相加,并将结果赋给变量a。
  3. 减等于(-=):用于将右侧的值与左侧变量的当前值相减,并将结果赋给左侧变量。例如,a -= 2;表示将整数2从变量a的当前值中减去,并将结果赋给变量a。
  4. 乘等于(*=):用于将右侧的值与左侧变量的当前值相乘,并将结果赋给左侧变量。例如,a *= 4;表示将整数4与变量a的当前值相乘,并将结果赋给变量a。
  5. 除等于(/=):用于将右侧的值与左侧变量的当前值相除,并将结果赋给左侧变量。例如,a /= 2;表示将变量a的当前值除以整数2,并将结果赋给变量a。

这些赋值运算符通常用于给变量赋值或更新变量的值。在编写程序时,需要根据具体的需求选择合适的赋值运算符来构建表达式。同时,需要注意赋值运算符的优先级和结合性,以确保正确的计算顺序。

5.2 赋值运算符案例

  1. 等于(=)
  2. 加等于(+=)
  3. 减等于(-=)
  4. 乘等于(*=)
  5. 除等于(/=)
    int a;
    a = 5; // 将整数5赋给变量aint a = 5;
    a += 3; // 将整数3与变量a的当前值相加,并将结果赋给变量a,即a = a + 3int a = 5;
    a -= 2; // 将整数2从变量a的当前值中减去,并将结果赋给变量a,即a = a - 2int a = 5;
    a *= 4; // 将整数4与变量a的当前值相乘,并将结果赋给变量a,即a = a * 4int a = 10;
    a /= 2; // 将变量a的当前值除以整数2,并将结果赋给变量a,即a = a / 2
    

六. 杂项运算符

6.1 杂项运算符

C语言中的杂项运算符包括以下几种:

  1. 逗号(,):用于连接两个表达式,并返回最后一个表达式的值。例如,int result = (a = 5, b = 3);表示将整数5赋给变量a,将整数3赋给变量b,并将整数3赋给变量result。
  2. 条件运算符(?:):用于根据条件选择两个表达式中的一个进行计算。例如,int max = (a > b) ? a : b;表示如果a大于b,则将a赋给变量max,否则将b赋给变量max。
  3. sizeof运算符:用于获取数据类型或对象的大小(以字节为单位)。例如,sizeof(int)返回整数类型的大小,sizeof(array)返回数组的大小。
  4. 取地址运算符(&):用于获取变量的内存地址。例如,int *ptr = &a;表示将变量a的地址赋给指针变量ptr。
  5. 解引用运算符(*):用于获取指针指向的变量的值。例如,int value = *ptr;表示将指针ptr指向的变量的值赋给变量value。
  6. 类型转换运算符:用于将一个数据类型转换为另一个数据类型。例如,double d = (double)i;表示将整数i转换为双精度浮点数d。

这些杂项运算符在编程中具有重要的作用,可以帮助我们实现更复杂的逻辑和操作。在编写程序时,需要根据具体的需求选择合适的杂项运算符来构建表达式。同时,需要注意运算符的优先级和结合性,以确保正确的计算顺序。

6.2 杂项运算符案例

  1. 逗号(,)
  2. 条件运算符(?:)
  3. sizeof运算符
  4. 取地址运算符(&)
  5. 解引用运算符(*)
  6. 类型转换运算符
    int a = 5;
    int b = 3;
    int result = (a = 5, b = 3); // result 的值为 3,因为 a = 5 返回 5,b = 3 返回 3,所以逗号表达式的值为最后一个表达式的值int a = 5;
    int b = 3;
    int max = (a > b) ? a : b; // max 的值为 5,因为 a > b 为真,所以选择 a 作为结果int size = sizeof(int); // size 的值为 4,因为整数类型的大小为 4 字节int a = 5;
    int *ptr = &a; // ptr 指向变量 a 的内存地址int a = 5;
    int *ptr = &a;
    int value = *ptr; // value 的值为 5,因为指针 ptr 指向变量 a,所以解引用 ptr 得到变量 a 的值int i = 5;
    double d = (double)i; // d 的值为 5.0,因为将整数 i 转换为双精度浮点数 d

七. 指针运算符

7.1 指针运算符

C语言中的指针运算符用于对指针进行操作,包括以下几种:

  1. 取地址运算符(&):用于获取变量的内存地址。例如,int *ptr = &a;表示将变量a的地址赋给指针变量ptr。
  2. 解引用运算符(*):用于获取指针指向的变量的值。例如,int value = *ptr;表示将指针ptr指向的变量的值赋给变量value。
  3. 递增运算符(++)和递减运算符(--):用于改变指针的值。递增运算符使指针指向下一个存储单元,递减运算符使指针指向上一个存储单元。例如,ptr++;表示将指针ptr指向下一个存储单元,ptr--;表示将指针ptr指向上一个存储单元。
  4. 加法运算符(+)和减法运算符(-):用于计算指针与整数之间的差值。例如,ptr + 2;表示将指针ptr向后移动两个存储单元,ptr - 3;表示将指针ptr向前移动三个存储单元。

这些指针运算符在编程中具有重要的作用,可以帮助我们操作和管理内存。在编写程序时,需要根据具体的需求选择合适的指针运算符来构建表达式。同时,需要注意运算符的优先级和结合性,以确保正确的计算顺序。

7.2 指针运算符案例

  1. 取地址运算符(&)
  2. 解引用运算符(*)
  3. 递增运算符(++)和递减运算符(--)
  4. 加法运算符(+)和减法运算符(-)
    int a = 5;
    int *ptr = &a; // 将变量a的地址赋给指针变量ptrint a = 5;
    int *ptr = &a;
    int value = *ptr; // 将指针ptr指向的变量的值赋给变量value,即value的值为5int arr[] = {1, 2, 3, 4, 5};
    int *ptr = arr; // 将数组arr的首元素地址赋给指针变量ptr
    ptr++; // 将指针ptr指向下一个存储单元,即指向数组arr的第二个元素
    int value = *ptr; // 将指针ptr指向的变量的值赋给变量value,即value的值为2int arr[] = {1, 2, 3, 4, 5};
    int *ptr = arr; // 将数组arr的首元素地址赋给指针变量ptr
    int value = *(ptr + 2); // 将指针ptr向后移动两个存储单元,然后解引用得到该位置的值,即value的值为3
    

八.求字节数运算符

8.1 求字节数运算符

C语言中没有专门的求字节数运算符,但可以通过sizeof运算符来获取数据类型或对象的大小(以字节为单位)。例如:

int size = sizeof(int); // 获取整数类型的大小,即4字节

需要注意的是,sizeof运算符返回的是数据类型或对象的大小,而不是变量的值。如果要获取变量的字节数,可以使用sizeof运算符结合指针来实现。例如:

int a = 5;
int size = sizeof(a); // 获取变量a的字节数,即4字节

九.特殊运算符

9.1特殊运算符

C语言中的特殊运算符包括以下几种:

  1. 取地址运算符(&):用于获取变量的内存地址。例如,int *ptr = &a;表示将变量a的地址赋给指针变量ptr。
  2. 解引用运算符(*):用于获取指针指向的变量的值。例如,int value = *ptr;表示将指针ptr指向的变量的值赋给变量value。
  3. 类型转换运算符:用于将一个数据类型转换为另一个数据类型。例如,double d = (double)i;表示将整数i转换为双精度浮点数d。
  4. 条件运算符(?:):用于根据条件选择两个表达式中的一个进行计算。例如,int max = (a > b) ? a : b;表示如果a大于b,则将a赋给变量max,否则将b赋给变量max。
  5. 逗号(,):用于连接两个表达式,并返回最后一个表达式的值。例如,int result = (a = 5, b = 3);表示将整数5赋给变量a,将整数3赋给变量b,并将整数3赋给变量result。
  6. 位运算符:用于对二进制位进行操作。例如,int result = a & b;表示将变量a和变量b进行按位与操作,并将结果赋给变量result。
  7. 逻辑运算符:用于对真值进行操作。例如,int result = (a > 0) && (b < 0);表示如果a大于0且b小于0,则将真值1赋给变量result,否则将假值0赋给变量result。
  8. sizeof运算符:用于获取数据类型或对象的大小(以字节为单位)。例如,sizeof(int)返回整数类型的大小,sizeof(array)返回数组的大小。
  9. 取地址运算符(&):用于获取变量的内存地址。例如,int *ptr = &a;表示将变量a的地址赋给指针变量ptr。
  10. 解引用运算符(*):用于获取指针指向的变量的值。例如,int value = *ptr;表示将指针ptr指向的变量的值赋给变量value。

这些特殊运算符在编程中具有重要的作用,可以帮助我们实现更复杂的逻辑和操作。在编写程序时,需要根据具体的需求选择合适的特殊运算符来构建表达式。同时,需要注意运算符的优先级和结合性,以确保正确的计算顺序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea中database的一些用法

1、查看表结构 方法1&#xff0c;右键&#xff0c;选这个 方法2 双击表后&#xff0c;看到数据&#xff0c;点DDL 方法3 写SQL时&#xff0c;把鼠标放在表名上&#xff0c;可以快速查看表结构 2、表生成对应的实体类 表中右键&#xff0c;选择这2个&#xff0c;选择生成的路…

FPGA和ASIC

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;这是我所总结作为学习的笔记第16篇,在本篇文章给大家介绍FPGA和ASIC。 一个四核i7的CPU的晶体管中有20亿的晶体管&#xff0c;需要链接起20亿的晶体管可不是一件容易的事情&#xff0c;所以设计一个CPU需要用年来算&#x…

Day11:栈与队列part02:20. 有效的括号、1047.删除字符串中所有相邻重复项、150. 逆波兰表达式求值

https://blog.csdn.net/weixin_43303286/article/details/131869968?spm1001.2014.3001.5501 有效的括号 遇见左括号对应的右括号进栈&#xff0c;遇到右括号看栈顶&#xff0c;不相同就返回false class Solution {public boolean isValid(String s) {Stack<Character&g…

【代码随想录】【回溯算法】补day24:组合问题以及组合的优化

回溯算法&#xff1a;递归函数里面嵌套着for循环 给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 包含组合问题和组合问题的剪枝优化 class solution:def combine(se…

C# 第三方曲线库及其特点

在 C# 中&#xff0c;有几个第三方库可以用于绘制曲线图&#xff0c;每个库都有自己的特点和优势。以下是一些常见的 C# 第三方曲线库及其特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.LiveC…

C++从零开始(day51)——unordered_set,unordered_map学习使用

1.unordered系列关联式容器 C98中&#xff0c;STL提供了底层为红黑树结构的一系列容器&#xff0c;在查找时效率可以达到时间复杂度可以达到O(logN)&#xff0c;即红黑树的高度次&#xff0c;当树中的结点非常多时&#xff0c;查询效率也不理想&#xff0c;因此在C11中&#x…

力扣L10--- 3. 无重复字符的最长子串--2024年3月14日

1.题目 2.知识点 注1&#xff1a;containsKey 是 Java 中 HashMap 类的一个方法&#xff0c;用于检查哈希表中是否包含指定的键。 注2&#xff1a;在哈希表&#xff08;HashMap)中&#xff0c;每个键对应着唯一的值&#xff0c;因此键不能重复&#xff0c;但值可以重复。 (1)创…

ECMAScript标准-默认导出和导入

导出&#xff1a; export default{} const baseURL "http://www.baidu.com" export default{url:baseURL } 导入&#xff1a; import 变量名(自己定义的变量名&#xff0c;全部加载&#xff09; from ‘模块名或路径’ import obj from ./commonjs.js console.…

Java后端面试经验分享,~纯分享

本文将从面试、工作、学习三个方面分享最近面试的一些心得以及以后发展的一些规划&#xff0c;仅供参考&#xff0c;哈哈&#xff0c;毕竟本人也很菜&#xff0c;因为菜才要多学习。一会儿也会分享两本Java面试题库&#xff08;题库是b站大学找的&#xff0c;一会儿我也会分享出…

SpringBoot整合Seata注册到Nacos服务

项目引入pom文件 <!-- SpringCloud Seata 组件--> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-seata</artifactId><version>${alibaba.seata}</version><exclusions><exc…

八股文打卡day34——数据库(11)

面试题&#xff1a;谈一下你对MySQL中锁的了解&#xff1f; 我的回答&#xff1a; 首先&#xff0c;从锁的粒度来分&#xff0c;可以分为&#xff1a; ①全局锁。全局锁主要用于数据库的备份&#xff0c;加上全局锁&#xff0c;意味着整个数据库都处于只读的状态。 ②行级锁。…

初学者必看的python中类型转换

Python中常见的类型转换 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中…

`sig_atomic_t` 是C语言中的一个数据类型,它通常用于在信号处理程序中声明变量

例子 static volatile sig_atomic_t signal_num; static void SigTerm(int signo) {running 0;signal_num signo; }int main(int argc, char *argv[]) {signal(SIGTERM, SigTerm);signal(SIGINT, SigTerm); }sig_atomic_t 是C语言中的一个数据类型&#xff0c;它通常用于在信…

(57)最富有客户的资产总量

文章目录 1. 每日一言2. 题目3. 解题思路3.1 法一3.2 法二 4. 代码4.1 法一4.2 法二 5. 结语 1. 每日一言 Care and diligence bring luck. 谨慎和勤奋&#xff0c;带来好运气。 2. 题目 题目链接&#xff1a;最富有客户的资产总量 给你一个 m x n 的整数网格 accounts &…

作业字符数组

凯撒密码 凯撒密码&#xff08;Caesar&#xff09;加密时会将明文中的 每个字母 都按照其在字母表中的顺序向后&#xff08;或向前&#xff09;移动固 定数目&#xff08; 循环移动 &#xff09;作为密文。例如&#xff0c;当偏移量是左移 3 的时候&#xff08;解密时的密钥…

python二级备考(3)-综合应用

1 《命运》是著名科幻作家倪匡的作品。这里给出《命运》的一个网络版本文件&#xff0c;文件名为“命运. txt”。 问题1 (5分) :在PY301-1. py文件中修改代码&#xff0c;对“命运. txt”文件进行字符频次统计&#xff0c;输出频次最高的中文字符(不包含标点符号)及其频次&…

SpringBoot Servlet容器启动解析

介绍 容器架构 容器处理请求 容器启动全局流程解析 启动前准备 WebServer创建入口 WebServer创建 Servlet启动 Web容器工厂类加载解析 Web容器个性化配置 属性注入 工厂类初始化 BeanPostProcessor方法实现 定制化流程 面试题 请描述下Servlet容器启动流程&#xff1f;介绍下…

Android什么情况下会出现内存泄漏以及怎么解决?

1.什么情况下会出现内存泄漏? (1)单例模式下为什么会造成内存泄漏? 因为单例的生命周期和应用的生命周期是一致的,如果往单例模式里面传了一个生命周期比较短的对象,比如Activity,就会导致Activity不能释放,导致内存泄漏。我们可以传context.getAppliactionContext,而…

周记-week3-人脸识别

感觉已经到极限了&#xff0c;&#xff0c;看看会不会上天~ 主要任务是人脸识别 Pytorch模型训练-----------数据集加载之ImageFolder之全过程 DataLoader的使用

4.10.CVAT——3D对象标注

文章目录 1. 创建任务2. 3D 任务工作区3.标准 3D 模式 Standard 3D mode4. 用长方体进行注释4.1. 用shapes进行注释4.2. 使用长方体进行跟踪Tracking 使用 3D 注释工具来标记 3D 对象和场景&#xff0c;例如车辆、建筑物、景观等。 1. 创建任务 要创建 3D 任务&#xff0c;您必…