当前位置: 首页 > article >正文

算术操作符与类型转换:从基础到精通

目录

前言:从基础到实践——探索运算符与类型转换的奥秘

 算术操作符超级详解

算术操作符:+、-、*、/、%

赋值操作符:=和复合赋值

单⽬操作符:++、--、+、-


前言:从基础到实践——探索运算符与类型转换的奥秘

    在先前的文章中,我们已经学习并掌握了变量如何存储数据以及不同类型的基本特性。然而,编程的魅力远不止于静态地存储数据——真正的魔法发生在数据被动态操作的瞬间。而这一切的核心,正是运算符数据类型转换

    当我们谈论运算符时,实际上是在讨论如何让程序“思考”:通过算术运算符处理数值、用比较运算符判断逻辑关系、借位运算符优化底层操作……这些看似简单的符号,构成了程序逻辑的基石。更值得关注的是,不同数据类型间的交互往往需要类型转换的介入——无论是隐式转换的“暗中相助”,还是显式转换的“主动出击”,它们都在确保程序运行的稳定性与准确性。接下来彩妙将带着大家,一步步来探索这之间的奥秘吧。

算术操作符超级详解

算术操作符:+、-、*、/、%

    C语⾔中为了⽅便运算,提供了⼀系列操作符,其中有⼀组操作符叫: 算术操作符 。分别是: + - * / % ,这些操作符都是 双⽬操作符
PS: 操作符也被叫做: 运算符 ,是不同的翻译,意思是⼀样的。

N目操作符定义:操作符需要n个操作数完成运算。其中"n"代表所需参数数量。例如:

  • 单目操作符(n=1):仅需1个操作数
    实例:-5(负号)、++a(自增)、!flag(逻辑非)

  • 双目操作符(n=2):需要2个操作数
    实例:a + b(加法)、x > y(比较)、a && b(逻辑与)

  • 三目操作符(n=3):需要3个操作数
    实例:a ? b : c(条件运算,a为真取b,否则取c)


通俗理解

  • 操作符如同"指令",指定操作类型
  • 操作数是操作对象
  • N目表示需要参与运算的对象数量

重要性

  1. 代码简洁:三目操作符可替代简单if-else
  2. 避免错误:明确操作数数量可预防语法错误
  3. 语言基础:多数编程语言的运算符规则都基于目数设计

 由于算数运算符对应为数学中常见的四则基本运算,下面就直接使用代码来为大家讲解:

1. 加法运算符 +

  • 功能:实现数值相加或字符串拼接(后者需配合指针使用)
  • 示例
#include <stdio.h>int main() {int a = 5, b = 3;float c = 2.5, d = 1.5;printf("整数加法: %d + %d = %d\n", a, b, a + b);       // 输出8printf("浮点加法: %.1f + %.1f = %.1f\n", c, d, c + d); // 输出4.0return 0;
}

2. 减法运算符 -

  • 功能:执行数值相减的运算,支持负数操作
  • 示例
#include <stdio.h>int main() {int x = 10, y = 7;int z = -5;printf("减法: %d - %d = %d\n", x, y, x - y);     // 输出3printf("负数减法: %d - %d = %d\n", z, y, z - y);  // 输出-12return 0;
}

3. 乘法运算符 *

  • 功能:执行数值相乘的运算
  • 示例
#include <stdio.h>int main() {int m = 4, n = 6;float p = 2.5, q = 3.0;printf("整数乘法: %d * %d = %d\n", m, n, m * n);     // 输出24printf("浮点乘法: %.1f * %.1f = %.1f\n", p, q, p * q); // 输出7.5return 0;
}

4. 除法运算符 /

  • 功能
    • 整数除法:自动截断小数部分(向下取整)
    • 浮点除法:保留完整小数部分
  • 示例
#include <stdio.h>int main() {int a = 7, b = 3;float c = 7.0, d = 3.0;printf("整数除法: %d / %d = %d\n", a, b, a / b);     // 输出2printf("浮点除法: %.1f / %.1f = %.2f\n", c, d, c / d); // 输出2.33return 0;
}
  • 注意:除数为0将导致运行时错误(段错误),要小心使用

5. 取模运算符 %

  • 功能:计算整数相除后的余数
  • 规则
    • 仅适用于整数运算
    • 结果符号与被除数一致(C语言特性)
  • 示例
#include <stdio.h>int main() {int a = 10, b = 3;int c = -10, d = 3;printf("正数取模: %d %% %d = %d\n", a, b, a % b);   // 输出1printf("负数取模: %d %% %d = %d\n", c, d, c % d);   // 输出-1return 0;
}

赋值操作符:=和复合赋值

在C语言中,赋值操作是程序设计的基础操作之一,用于将值或表达式结果存储到变量中。C语言提供两种主要赋值形式:简单赋值运算符(=复合赋值运算符(如 +=-= 等)

1 简单赋值运算符 =

定义
简单赋值运算符 = 用于将右侧的值或表达式结果赋给左侧的变量。语法如下:

variable = expression;
  • variable:必须是可修改的左值(lvalue),如变量名
  • expression:可以是常量、变量或其他运算表达式

示例

#include <stdio.h>int main() {int a = 10;         // 将10赋给变量aint b = a;          // 将a的值(10)赋给bint c = a + b;      // 将表达式a + b的结果(20)赋给cprintf("a = %d\n", a); // 输出 a = 10printf("b = %d\n", b); // 输出 b = 10printf("c = %d\n", c); // 输出 c = 20int a2 = 3;int b2 = 5;int c2 = 0;c2 = b2 = a2 + 3;//连续赋值,从右向左依次赋值的。return 0;
}

注意事项

赋值方向:从右向左进行,a = b 表示将 b 的值赋给 a

类型匹配:需注意数据类型兼容性。(例如)

#include <stdio.h>int main() {int a = 3.14;  // 浮点数隐式转换为整数,丢失精度printf("a = %d\n", a);  // 输出3float b = 10 / 4;       // 整数除法结果隐式转换为浮点数printf("b = %.1f\n", b); // 输出2.0// 正确的显式类型转换float c = (float)10 / 4;printf("c = %.1f\n", c); // 输出2.5return 0;
}

2. 复合赋值运算符

定义
复合赋值运算符将算术运算符与赋值运算符结合,简化代码。通用形式:

variable op= expression;
  • op:可以是 +-*/% 等算术运算符
  • 等价形式a += b 等价于 a = a + b

常见复合赋值运算符

运算符等价形式
+=a = a + b
-=a = a - b
*=a = a * b
/=a = a / b
%=a = a % b
<<=a = a << b
>>=a = a >> b
&=a = a & b
^=

a = a ^ b

|=a = a | b

示例

#include <stdio.h>int main() {int a = 10;a += 5;  // a = 15a -= 3;  // a = 12a *= 2;  // a = 24a /= 4;  // a = 6a %= 5;  // a = 1printf("a = %d\n", a); // 输出 a = 1return 0;
}

复合赋值运算符所带来的优势

  • 代码简洁:减少变量名重复书写
  • 执行效率:复合赋值仅计算左侧变量一次

    对于其中有一些大家没见过的(<<  >>   & ^ |  )这些运算符,这里给大家一个补充说明:

 

一、位移运算符

  1. 左移运算符 <<

    • 格式:操作数 << 移位位数
    • 功能:将二进制位整体左移,右侧空位补零
    • 示例:
      int a = 0b101;  // 5的二进制表示
      a = a << 1;     // 结果0b1010(十进制10)
      
  2. 右移运算符 >>

    • 格式:操作数 >> 移位位数
    • 功能:将二进制位整体右移,左侧补符号位(有符号数)或零(无符号数)
    • 示例:
      int b = 0b1000; // 8的二进制表示
      b = b >> 1;     // 结果0b100(十进制4)
      

二、位逻辑运算符

  1. 按位与 &

    • 格式:操作数1 & 操作数2
    • 运算规则:对应位均为1时结果为1,否则为0
    • 示例:
      #include <stdio.h>int main() {int a = 3;   // 二进制: 0011int b = 10;  // 二进制: 1010int result = a & b;  // 按位与运算printf("a & b = %d\n", result);  // 输出结果a & b = 2return 0;
      }
  2. 按位或 |

    • 格式:操作数1 | 操作数2
    • 运算规则:对应位有1时结果为1,全0时为0
    • 示例:
      #include <stdio.h>int main() {int a = 5;   // 二进制: 0101int b = 3;   // 二进制: 0011int result = a | b;  // 按位或运算printf("a | b = %d\n", result);  // 输出结果a | b = 7return 0;
      }
  3. 按位异或 ^

    • 格式:操作数1 ^ 操作数2
    • 运算规则:对应位不同时结果为1,相同时为0
    • 示例:
      #include <stdio.h>int main() {int a = 5;   // 二进制: 0101int b = 3;   // 二进制: 0011int result = a ^ b;  // 按位异或运算printf("a ^ b = %d\n", result);  // 输出结果a ^ b = 6return 0;
      }

3. 连续赋值与注意事项

连续赋值
C语言允许连续赋值,但可能降低可读性:

#include <stdio.h>int main() {int a = 3, b = 5, c = 0;// 不推荐写法c = b = a + 3;  // 推荐写法b = a + 3;c = b;printf("b = %d, c = %d\n", b, c); // 输出 b = 6, c = 6return 0;
}

注意事项

  1. 优先级问题:赋值运算符优先级较低
  2. 避免副作用:复杂表达式中可能产生意外结果

4. 复合赋值与类型转换

隐式类型转换

在C语言中,隐式类型转换是编译器自动进行的类型转换,发生在下面的场景中:

赋值转换
当赋值运算符两侧类型不一致时,右侧值会自动转换为左侧变量类型:

int a = 3.14;  // 3.14被截断为整型3

算术运算转换
    二元运算符两侧类型不同时,按以下优先级自动转换:
转换顺序为:int → unsigned int → long → unsigned long → float → double → long double函数参数传递

当实参类型与形参声明不匹配时:

    void func(float x);
    func(5);  // int型5自动转为float型5.0
    

    典型示例

    int x = 10;
    double y = 3.5;
    double result = x + y;  // x被隐式转换为double类型后相加
    

    注意事项

    • 数据精度可能丢失(如doubleint会截断小数)
    • 符号变化风险(如intunsigned int时负值会变为大正数)
    • 建议使用显式强制转换避免意外结果:(int)3.14

    强制类型转换

    基本概念

        强制类型转换是程序员显式指定数据类型转换的操作,用于将表达式或变量从一种类型转换为另一种类型。其语法格式为:(目标类型)表达式

    典型应用

    // 示例1:浮点数转整数
    float pi = 3.14159;
    int integer_pi = (int)pi;  // 结果为3(丢失小数部分)// 示例2:指针类型转换
    char *buffer = (char*)malloc(100 * sizeof(char));// 示例3:算术运算类型控制
    int a = 5, b = 2;
    double result = (double)a / b;  // 得到2.5(避免整数除法)
    
    #include <stdio.h>int main() {int a = 10;float b = 3.5;//进行算术运算中的强制转换a = (int)(a + b);  // a = 13b = (float)(a + 1); // b = 14.0printf("a = %d, b = %.1f\n", a, b);return 0;
    }
    

    转换规则

    • 数值类型转换
      $目标类型 = 截断/扩展(原值)$
      例如:(int)3.7 → 3(float)10 → 10.0f

    • 指针类型转换
      仅改变解释方式,不修改底层数据
      例如:int* → char* 可访问单个字节

    注意事项

    1. 精度损失

      long big_num = 2147483648L;
      int converted = (int)big_num;  // 结果未定义(超出int范围)
      
    2. 符号处理

      unsigned char c = 200;
      int signed_val = (signed char)c;  // 结果为-56(二进制补码解释)
      
    3. 结构体转换限制
      不能直接对结构体类型进行强制转换

    4. 函数指针转换
      需确保函数签名匹配,否则可能引发运行时错误

    单⽬操作符:++、--、+、-

    核心操作符精解

    1. 自增操作符 + +

    • 执行机制
      • 前置式:++var 先完成内存写入再读取(先自增,在进行运算)
      • 后置式:var++ 先缓存原始值再更新(先运算,在进行自增)
    • 内存操作对比
    int a = 5;
    int b = ++a; // 等价于 a = a+1; b = a;
    int c = a++; // 等价于 int temp = a; a = a+1; c = temp;
    

    2. 自减操作符 - -

    • 执行机制
      • 前置式:--var 先完成内存写入再读取(先自减,在进行运算)
      • 后置式:var-- 先缓存原始值再更新(先运算,在进行自减)
    • 内存操作对比
    int a = 5;
    int b = --a; // 等价于 a = a-1; b = a;
    int c = a--; // 等价于 int temp = a; a = a-1; c = temp;
    
    3. + 和 -

    这⾥的+是正号,-是负号,都是单⽬操作符。

    运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错。

    (PS:int a = +10; 等价于 int a = 10;)

    运算符 - ⽤来改变⼀个值的正负号,负数的前⾯加上 - 就会得到正数,正数的前⾯加上 - 会得到负

    数。

    int a = 10;
    int b = -a;
    int c = -10;
    printf("b=%d c=%d\n", b, c);//这⾥的b和c都是-10
    int a = -10;
    int b = -a;
    printf("b=%d\n", b); //这⾥的b是10

        在此,关于c语言的基本前置知识都讲完啦。这些知识可以运用于大多数的语言环境中(例如python,java,c++等)下一篇,菜喵就开始为大家讲解有关计算机语句部分的介绍与解说啦,喜欢的可以点个赞,关注彩妙,获取更多优质好文哦!

    下篇博客链接:C语言中的分支循环语句(分支语句)-CSDN博客

    相关文章:

    算术操作符与类型转换:从基础到精通

    目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

    DAY 26 函数专题1

    函数定义与参数知识点回顾&#xff1a;1. 函数的定义2. 变量作用域&#xff1a;局部变量和全局变量3. 函数的参数类型&#xff1a;位置参数、默认参数、不定参数4. 传递参数的手段&#xff1a;关键词参数5 题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一…...

    jdbc查询mysql数据库时,出现id顺序错误的情况

    我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...

    sshd代码修改banner

    sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...

    前端开发者常用网站

    Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

    在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

    在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

    如何在Windows本机安装Python并确保与Python.NET兼容

    ✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

    快速排序算法改进:随机快排-荷兰国旗划分详解

    随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

    篇章二 论坛系统——系统设计

    目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...

    加密通信 + 行为分析:运营商行业安全防御体系重构

    在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...

    LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

    &#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...

    Monorepo架构: Nx Cloud 扩展能力与缓存加速

    借助 Nx Cloud 实现项目协同与加速构建 1 &#xff09; 缓存工作原理分析 在了解了本地缓存和远程缓存之后&#xff0c;我们来探究缓存是如何工作的。以计算文件的哈希串为例&#xff0c;若后续运行任务时文件哈希串未变&#xff0c;系统会直接使用对应的输出和制品文件。 2 …...

    32单片机——基本定时器

    STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...

    热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

    赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...

    Matlab实现任意伪彩色图像可视化显示

    Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...

    书籍“之“字形打印矩阵(8)0609

    题目 给定一个矩阵matrix&#xff0c;按照"之"字形的方式打印这个矩阵&#xff0c;例如&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为&#xff1a;1&#xff0c;…...

    Vue3中的computer和watch

    computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...

    图解JavaScript原型:原型链及其分析 | JavaScript图解

    ​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...

    《信号与系统》第 6 章 信号与系统的时域和频域特性

    目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...

    规则与人性的天平——由高考迟到事件引发的思考

    当那位身着校服的考生在考场关闭1分钟后狂奔而至&#xff0c;他涨红的脸上写满绝望。铁门内秒针划过的弧度&#xff0c;成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定"&#xff0c;构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...

    一些实用的chrome扩展0x01

    简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...

    AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

    Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

    二维FDTD算法仿真

    二维FDTD算法仿真&#xff0c;并带完全匹配层&#xff0c;输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

    02.运算符

    目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...

    Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

    文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...

    OCR MLLM Evaluation

    为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...

    React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构

    React 实战项目&#xff1a;微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇&#xff01;在前 29 篇文章中&#xff0c;我们从 React 的基础概念逐步深入到高级技巧&#xff0c;涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...

    uni-app学习笔记三十五--扩展组件的安装和使用

    由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...

    6.9-QT模拟计算器

    源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...

    [USACO23FEB] Bakery S

    题目描述 Bessie 开了一家面包店! 在她的面包店里&#xff0c;Bessie 有一个烤箱&#xff0c;可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...