首页 > 编程语言 >刘铁猛C#学习笔记6 操作符详解2

刘铁猛C#学习笔记6 操作符详解2

时间:2024-02-23 18:56:39浏览次数:26  
标签:刘铁猛 C# 数据类型 取反 操作符 内存 溢出 取负

————— 基本操作符 ———————

1.checked 与 unchecked

用于检测一个值在内存中是否溢出 Checked:告诉编译器要检查溢出 Unchecked:告诉编译器不用检查溢出 使用在值变量前,若内存溢出,则编译器会出现以下弹窗 ex:try与catch(待补充)     Unchecked是C#语言默认采用的模式,不显示溢出错误,继续运行 上下文用法:  

2.delegate

delegate关键字更多用来声明“委托”这种数据类型(待续) 作为操作符用来对一个方法进行如下处理,声明匿名方法 首先有一个方法 然后将其函数名、返回值删去,剪切到程序中 在前面加上delegate关键字 这种方法现在已经过时 现在C#有称作拉姆达表达式的工具,用=>符号将两个类型都不需要标明的变量代入到之后的代码块中  

3.sizeof 获取对象在内存中所占字节数

sizeof能获取除string、object以外的数据类型的字节数大小,因为这两个不是结构体 能获取结构体类型的基本数据类型的占用字节数大小 可以获取自定义结构体实例占用的字节数,但需要放在不安全(unsafe)的上下文中    

4.-> 指针访问对象成员操作符

用法与C、C++中类似,说明C#是有真正的指针的! 但由于要直接操作内存,需要放在unsafe上下文中才能使用 指针只能操作结构体类型,不能操作引用类型

————— 一元操作符 ———————

5.& 取地址操作符 和 *取引用内容操作符

同C、C++,属于指针相关操作符,都需要在unsafe环境下使用 注意:*是一元操作符,而成员访问操作符. 是基本操作符 基本操作符优先级高于一元操作符,所以下图中表达式需要打括号

6.- 取负操作符

(1)与数学中正负号一致

可用于给带符号的数据类型赋值 注意:数学中连续两次取负得正,但程序中不能连写两个负号如“--x”,因为这是前置自减操作符 需要连续取负时要打括号  

(2)取负可能造成内存溢出

带符号的数据类型,最大值和最小值在绝对值上不对称 如int类型的表示范围:最小值绝对值比最大值绝对值大1 所以取负操作符有可能造成内存溢出  

7.~按位取反操作符

将一个数字在二进制上按位取反 (划线语句后半段含义:转换为二进制,不足的时候用0补齐) 打印结果:   所以12345678 按位取反 = -12345679   计算机求相反数的方法:补码(按位取反再加一) 数据类型的最小值都是最高位为1,其余位为0 对其按位取反以后是01111111111111,再加一就又是10000000000000 所以对数据类型的最小值取负,仍会得到这个值  

8.! 取非操作符

只能用于操作bool类型的变量,将其取反  

9.++、-- 前置自增自减

前置自增:先运算再赋值 后置自增:先赋值再运算 自增自减尽量单独使用,在一大段表达式中使用非常影响可读性

标签:刘铁猛,C#,数据类型,取反,操作符,内存,溢出,取负
From: https://www.cnblogs.com/jk-2048/p/18030222

相关文章

  • [Rust Unit testing] test should_panic
    structRectangle{width:i32,height:i32}implRectangle{//Onlychangethetestfunctionsthemselvespubfnnew(width:i32,height:i32)->Self{ifwidth<=0||height<=0{panic!("Rectanglewi......
  • 刘铁猛C#学习笔记7 操作符详解3
    1.强制类型转换操作符强制类型转换操作符()intx;strings=(String)x;例1:stringstr1=Console.ReadLine();stringstr2=Console.ReadLine();//使用ReadLine读取到的是两个string类型的数据//如果要进行计算,需要把两个string转换为intintx=Convert.ToInt32(str1)......
  • 基于STM32F407MAC与DP83848实现以太网通讯三(STM32F407MAC配置以及数据收发)
    本章实现了基于STM32F407MAC的数据收发功能,通过开发板的RJ45接口连接网线到电脑,电脑使用Wiershark工具抓包验证。参考文档:DP83848IV英文DP83848EP中文STM32F4xx参考手册一、工程模板以及参考源码的获取工程源码我使用的正点原子的探索者开发板STM32F407(V2)参考源码:正点原子......
  • 刘铁猛C#学习笔记8 表达式、语句1
    表达式1.表达式的定义通用定义:一种专门用来求值的语法实体C#中定义:由一个或多个操作数,零个或多个操作符,功能是求值,求值的结果可能是四类Singlevalue、object、method、namespace(说明至少要有一个操作数,但不一定要有操作符)  C#中表达式值的类型:(1)单值Singlevalue......
  • oracle11g静默安装
    一、先设置swap大小设置方法见另外文档:(21条消息)Linux系统设置swap大小_Tyler唐的博客-CSDN博客_linuxswap设置多大二、准备静默安装Oracle2.1创建Oracle用户(ROOT用户下)/usr/sbin/groupadd-g501oinstall/usr/sbin/groupadd-g502dba/usr/sbin/groupadd-g503oper/usr/......
  • css 动画
    <divclass="quan-box">逐渐放大消失<div>  /*申明一个div的class用于执行动画*/.quan-box{opacity:0;background:#70D97C;position:absolute;//3秒执行完成quan动画,infinite动画会无限次重复播放,steps(40)表示将整个动画过程分割成40个......
  • Anaconda的安装&基本使用
    一.下载&安装ANACONDA下载进入Anaconda官网下载AnacondaIndividualEdition,这是一个完全免费的软件。安装右击安装包,以管理员身份运行;Next;agreeLicenseAgreement;这里选择AllUsers(所有用户安装):设置安装路径,注意路径中尽量不要出现中文:这个地方......
  • linux(ubuntu22.04)+PicGo(gui版)+阿里云oss搭建图床教程
    linux(ubuntu22.04)+PicGo(gui版)+阿里云oss搭建图床教程资源库PicGo下载链接:山东镜像源github原版阿里云oss链接linux下PicGo(gui版)的安装从资源库链接里下载后缀为.AppImage的安装包,版本可以选择稳定版2.3.1也可以用更新的beta版。修改文件权限,打开文......
  • Cursor 介绍与基础生成用法
    Cursor介绍与基础生成用法实验介绍Cursor是一款与OpenAI合作并且基于GPT-4的新一代辅助编程神器,国内直接可以访问,它可以根据你的输入和需求自动生成代码片段,还可以帮助你重构、理解和优化代码,提高开发效率。在本节课程中,我们将介绍Cursor的基本使用方法。知识点Curso......
  • ThreadLocal
    前置知识Java中有些引用类型?Java中主要有4种引用类型,分别是:强、软、弱、虚。他们主要跟Java的垃圾回收机制有关强引用:Java中默认的引用类型,一个对象如果具有强引用,那么只要这种引用还存在就不会被回收软引用:在内存充足时,是不会GC这个对象的。只有在JVM内存不足的时候才会调用......