操作符详解

MIKE21桥墩模拟实战:抠网格与构筑物法对比与选型指南 本文详细对比了MIKE21软件中抠网格法与构筑物法在桥墩模拟中的应用,包括操作步骤、适用场景及优缺点分析。通过实际案例数据展示两种方法的精度与效率差异,并提供选型决策树和常见问题解决方案,帮助工程师根据项目需求选择最优模拟方法。 阅读详情

今天给小伙伴们分享一些关于操作符的知识~

文章将会介绍各种操作符以及它们的使用示例。

OK,那就让咱们进入正题吧@

目录

                  一. 操作符分类

二. 各类操作符介绍

1. 算数操作符

2. 移位操作符

3. 位操作符

4.1 赋值操作符

4.2 复合赋值符

5. 单目操作符

                           6. 关系操作符

                           7.逻辑操作符     

                           8.条件操作符

9.逗号表达式

10.下标引用、函数调用和结构成员

三.结语


一. 操作符分类

操作符的种类还挺多嘞~  可分为:

算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员
是挺多的吧~

二. 各类操作符介绍

1. 算数操作符
+     -   *   /   %
算数操作符还是比较好理解的,但有一些注意事项还是要留意一下嘞 @
1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。只要有浮点数执行的就是浮点数除法。
3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
2. 移位操作符
<< 左移操作符
>> 右移操作符
   
注:移位操作符的操作数只能是整数
<< 左移操作符
移位规则:
左边抛弃、右边补 0
>> 右移操作符
移位规则:
首先右移运算分两种:
1. 逻辑移位
左边用 0 填充,右边丢弃
2. 算术移位
左边用原该值的符号位填充,右边丢弃
警告 ⚠ :
对于移位运算符,不要移动负数位,这个是标准未定义的。
例如:
int num = 10 ;
num >>- 1 ; //error
3. 位操作符
位操作符有:
& // 按位与
|   // 按位或
^ // 按位异或
注:他们的操作数必须是整数。
例题:
不创建临时变量(第三个变量),实现两个数的交换。
 
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("a = %d b = %d\n", a, b);
return 0;
}
4.1 赋值操作符
赋值操作符 “ =” 是一个很棒的操作符,它可以让你得到一个你满意的值。也就是你可以给自己赋值。
例如
int weight = 120;//体重
weight = 89;//不满意就赋值
double salary = 10000.0;
salary = 20000.0;//使用赋值操作符赋值。

4.2 复合赋值符
+=
-=
*=
/=
%=
>>=
<<=
&=
|=
^=
这些运算符都可以写成复合的效果。
比如:
int x = 10;
x = x+10;
x += 10;//复合赋值
//其他运算符一样的道理。这样写更加简洁。
5. 单目操作符
!           逻辑反操作
-           负值
+           正值
&           取地址
sizeof   操作数的类型长度(以字节为单位)
~           对一个数的二进制按位取反
--           前置、后置 --
++         前置、后置 ++
*           间接访问操作符 ( 解引用操作符 )
( 类型 )   强制类型转换
这里咱们需要注意的操作符前置与后置的区别,前置是先进行操作符运算然后再使用,而后置则是先使用再进行操作符运算。
另外, sizeof 和  strlen函数 两者的使用方法也是需要区分开的,一个是操作符,一个是函数,strlen函数的使用需要引用string头文件。
//++和--运算符
//前置++和--
#include <stdio.h>
int main()
{
    int a = 10;
    int x = ++a;
    //先对a进行自增,然后再使用a,也就是表达式的值是a自增之后的值。x为11。
    int y = --a;
    //先对a进行自减,然后再使用a,也就是表达式的值是a自减之后的值。y为10;
    return 0;
}
//后置++和--
#include <stdio.h>
int main()
{
    int a = 10;
    int x = a++;
    //对a先使用,然后再增加,这样x的值是10;之后a变成11;
    int y = a--;
    //对a先使用,然后再自减,这样y的值是11;之后a变成10;
    return 0;
}
6. 关系操作符
关系操作符
>
>=
<
<=
!=       // 用于测试 “ 不相等 ”
==      // 用于测试 “ 相等
这些关系运算符比较简单,但是我们要注意一些运算符使用时候的陷阱。
这里使用相等操作符 “  ==  ”时,需要细心一点,不能跟平时数学所用的相等 “ = ” 混淆。
7.逻辑操作符
&&     逻辑与
||         逻辑或

这里需要

区分 逻辑与 和 按位与
区分 逻辑或 和 按位或
1&2 ----->0
1&&2---->1
1|2   ----->3
1||2   ---->1
8.条件操作符
exp1 ? exp2 : exp3
这个操作符在进行一些简单的比较运算时还是比较实用的
例如
int a = 10;
int b = 20;
int max = (a > b) ? a : b; // max 将被赋值为 20,因为 20 大于 10


int x = 5;
int y = 10;
int z = x < y ? x : y; // z 将被赋值为 x 的值,因为 x < y
9.逗号表达式
exp1 , exp2 , exp3 , …expN
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
10.下标引用、函数调用和结构成员
1. [ ] 下标引用操作符
操作数:一个数组名 + 一个索引值
示例:
int arr[10];//创建数组
 arr[9] = 10;//实用下标引用操作符。
 [ ]的两个操作数是arr和9。
2. ( ) 函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
示例:
#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;
 }
#include <stdio.h>
struct Stu
{
 char name[10];
 int age;
 char sex[5];
 double score;

3. 访问一个结构的成员
. 结构体 . 成员名
-> 结构体指针 -> 成员名
#include <stdio.h>
struct Stu
{
char name[10];
int age;
char sex[5];
double score;     
};

void set_age1(struct Stu stu)
{
stu.age = 18;
}
void set_age2(struct Stu* pStu)
{
pStu->age = 18;//结构成员访问
}
int main()
{
struct Stu stu;
struct Stu* pStu = &stu;//结构成员访问

stu.age = 20;//结构成员访问
set_age1(stu);

pStu->age = 20;//结构成员访问
set_age2(pStu);
return 0;
}

三.结语

操作符的用法还是比较重要的,但因为其种类多,刻意去背也挺不容易,所以只有多使用,多回顾,慢慢熟练@

AIDC智算中心建设:资源池化核心技术解析 AI 应用的POD在运行的时候,通过池化运行时访问虚拟GPU、执行AI任务,池化运行时拦截对虚拟GPU的访问请求、转递给池化服务代理执行,池化服务代理通过向智算池化控制器查询虚拟GPU所对应的真实智算资源位置、规格,按查询结果分配智算资源、执行AI任务,如果真实的智算资源位于远程计算节点,则由本地池化服务代理将访问请求转递给远程计算节点上的池化服务代理处理,相关通信经由参数面网络。 阅读详情

相关推荐

ESP32-P4实战:LVGL V9.4 PPA加速配置与性能对比

本文详细介绍了如何在ESP32-P4平台上配置LVGL V9.4的PPA硬件加速功能,通过启用PPA加速显著提升图形处理性能并降低CPU占用率。文章包含环境准备、配置步骤、性能对比及常见问题解决方案,帮助开发者高效利用ESP32-P4的PPA加速器优化嵌入式GUI应用。

rice5的博客 1193

操作符详解(下)

单目操作符 逗号表达式 下标访问[] 函数调用() 整型提升

凤年徐的博客 1282

Simulink封装与库的建立

第二栏设置标签,第三栏是对应变量名,即是第一张图中的常量名。1.先将输入与常量模块相连接并生成子系统。按照如图所示添加修改,最后的效果如下图。封装子系统搭建测试环境。

lensyu1994的博客 1743

【C语言】操作符详解

【C语言】操作符详解

XJ2536877903的博客 1504

CCD 技术介绍(基于innovus引擎CCOpt)

CCD:全称是,并行优化clock和data path。CCOpt:全称是Clock的timing分为两种模式,和。preCTS并没有clock,因此需要建立一个,从clock端口到寄存器CK端的来自sdc中的设置;postCTSupdateIO latency,clock就会自动的转换成propagatedclock,这时就是实际时钟互连线网络的delay。在实际设计中,clock起始于ideal。

m0_61003348的博客 8980

5分钟搞定!用OpenCV实现全景图像柱面展开的保姆级教程(附完整代码)

本文提供了一份使用OpenCV实现全景图像柱面展开的详细教程。通过清晰的数学原理讲解和分步代码演示,指导读者快速掌握从等距柱状投影全景图到平面展开图的核心转换方法,并涵盖性能优化、参数调整及透视视图扩展等实用技巧,适合图像处理爱好者和开发者实践。

sony5的博客 576

常见操作符详解

++ , --, & , * , + ,- , ~ , sizeof ,(类型)&& ,||?[ ](). 、->

Qiuio的博客 725

SMRATS(一) SMARTS+PPO baseline运行教程

python类方法 class Agent: @classmethod def from_function() python typing 含义 为防止弱类型python出现忘记变量类型的问题,python3.5及之后版本增加了对应的类型提示。 输入和输出类型 函数接受并返回一个字符串,注释像下面这样: def greeting(name: str) -&gt; str: return 'Hello ' + name 常用的typing类型 int,long,float: 整型,

Freshduke的博客 1415

Android RxJava变换操作符详解

变换操作符(Transformation Operators)用于对Observable发射的数据序列进行变换操作,可以将数据转换成我们需要的格式或类型。RxJava提供了丰富的变换操作符,让我们能够以声明式的方式处理数据流。RxJava的变换操作符为我们提供了强大的数据流处理能力,掌握这些操作符能够让我们以更简洁、更优雅的方式处理复杂的异步逻辑。在实际开发中,应根据具体场景选择合适的操作符,并注意性能优化和内存管理。希望本文能帮助你更好地理解和使用RxJava的变换操作符。

专注于移动开发的干货分享。提供高效解决方案、避坑指南与前沿技术解析。为开发者创造价值。 843

HyperLynx(二)LineSim的基本操作

如果是仿真眼图,那么还有一个眼图模板(EyeMask)加载选项,这些选项必须经过勾选之后才会在显示界面中显示,以使相关的信息在波形显示的界面呈现,如图所示。另一种为振荡器激励,即连续的脉冲激励源,在这个选项中有两个参数需要设置,即激励源的频率(MHz)和占空比(Duty),如图所示。如果Pins一栏中有多个引脚具有相同的模型,那么可以选中已经赋值模型的引脚,单击右下角的Copy按钮进行复制,然后再选择同类型并没有赋模型的引脚,单击粘贴或者全部粘贴,即完成模型赋值,但是不同类型的模型就不能这样操作。...

小幽余生不加糖 6105

我的世界1.20.1forge模组开发(8)——自定义实体、AI

Overridethis,true,// 仅排除雪傀儡和同类e ->!这段代码是一个实体类的注册行为,通过重写方法来设定实体在游戏中的行为目标。在这段代码中,为一个名为SnowMonster的实体注册了多个行为目标。:设定SnowMonster实体在20 ticks内以5.0的力量进行远程攻击的行为目标。PanicGoal:设定SnowMonster实体在受到惊吓时会进行惊慌行为的目标。:设定SnowMonster实体会避开强大目标的行为目标。

qq_24992377的博客 2080

【C语言】操作符详解(下)

文章摘要: 本文是C语言操作符讲解的续集,主要介绍单目操作符、逗号表达式及结构体相关操作,希望可以帮助到你。

LSRISME的博客 1404

Java与OSG的梦幻联动:深入编译OpenSceneGraph的Java JNI桥梁,开启3D视觉盛宴的奇幻之旅

🔥关注墨瑾轩,带你探索编程的奥秘!🚀🔥超萌技术攻略,轻松晋级编程高手🚀🔥技术宝库已备好,就等你来挖掘🚀🔥订阅墨瑾轩,智趣学习不孤单🚀🔥即刻启航,编程之旅更有趣🚀在编译OpenSceneGraph (OSG) 的Java版本时,首先需要了解OSG本身是一个主要用于3D图形和视觉仿真的开源库,它主要支持C++。然而,OSG 也支持通过JNI(Java Native Interface)与Java集成,这允许Java程序调用OSG的C++库。

java专栏 871

操作符详解与应用

即使有了操作符的优先级和结合性,我们写出的表达式依然有可能不能通过操作符的属性确定唯⼀的计算路径,那这个表达式就是存在潜在⻛险的,建议不要写出特别复杂的表达式。在此一些常见的操作符和相关内容都结束了,因为有的操作符涉及到后面的内容,即使讲解了,大家可能会不明白为什么,因此可能有些操作符并未涉及,请大家多多包涵。本章也是一个比较大的章节,不过还是希望大家能够看下去,最后让我们学习之路越走越远,加油!

chuxinweihui的博客 1744

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

十六、操作符详解

注释:同上,操作符的优先级只能决定自减--的运算在+的运算的前面,但是我们并没有办法得知,+操作符的左操作数的获取在右操作数之前还是之后求值,所以结果是不可预测的,是有歧义的。:表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。注释:代码1在计算的时候,由于*比+的优先级高,只能保证,*的计算是比+早,但是优先级并不能决定第三个*比第一个+早执行。如果两者的优先级相同,取决于他们的结合性。

weixin_58543820的博客 1722

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex&trade;-M4F 内核的信息,请参见《Cortex&trade;-M4F 技术参考手册》。

【操作符看这一篇你就通透了】———操作符详解

🌎操作符详解🌏 文章目录操作符详解==一、正文部分==1、操作符详解1.1 🚩算术操作符1.2🚩🚩🚩移位操作符1.3🚩🚩🚩位操作符1.4🚩赋值操作符1.5🚩🚩🚩单目操作符1.6🚩条件操作符1.7🚩🚩逗号表达式1.8🚩🚩🚩下标引用、函数调用和结构成员1.8.1♑♑♑下标引用操作符1.8.2♒♒♒()函数调用操作符1.8.3 ♓♓♓访问一个结构的成员1.9🚩🚩🚩表达式求值1.10🚩🚩🚩操作符的属性 ​ 🚩🚩🚩**重点★★★★★** ①理解各种操作符 ②表达式求值 ③数据类型详细介绍 ④整型在内存中的存储

端端的博客 2465

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的&ldquo;数理统计&rdquo;课程中有一章专门讲授&ldquo;贝叶斯方法和统计决策理论&rdquo;,近十年来也给中国科学技术大学概率统计专业研究生开设过几次&ldquo;贝叶斯分析&rdquo;课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了&ldquo;贝叶斯统计推断&rdquo;和&ldquo;贝叶斯统计决策&rdquo;的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标&ldquo;*&rdquo;号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

上一篇: 解决青蛙跳台阶问题~
下一篇: 指针知识啦
知困勉行的Allen
博客等级 码龄3年 279粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值