C#变量、常量与运算符

文章目录

      • 变量
        • 变量定义
        • 命名规则
        • 作用域和生命周期
      • 常量
        • 特殊字符常量
      • 运算符
        • 算术运算符
        • 关系运算符
        • 逻辑运算符
        • 位运算符
        • 赋值运算符
        • 其他运算符

变量

  变量就是一个存储空间的名字,变量是什么类型,这个空间里面存储的就是什么类型的数据。

变量定义

<data_type> <variable_list>

  data_type代表C#中的一个数据类型,variable_list是一个或多个变量,多个变量之间要用逗号分开。

命名规则

  变量名可以包含字母、数字和下划线;

  变量名必须以字母或者下划线开头,不能用数字作为开头;

  变量名区分大小写;

  不能使用C#中的关键字作为变量名。

作用域和生命周期

  局部变量的的作用域和生命周期在其所处的代码块内,出了代码块作用域和生周期结束;

  全局变量的生命周期随着整个程序的结束而结束

  局部变量和全局变量冲突时,局部优先。

常量

  常量是不可被修改的数据,它可以是任何一种基本的数据类型。

特殊字符常量
转义序列含义
\\\字符
\''字符
\""字符
\??字符
\aAlert或者bell
\b退格键
\f换页字符
\n换行字符
\r回车
\t水平制表符
\v垂直制表符
\ooo一到三位的八进制数
\xhhh...一个或多个十六进制数

运算符

算术运算符
运算符描述
+把两操作数相加
-把两操作数相见
*把两操作数相乘
/把两操作数相除
%取模运算符,两数进行整除,取整除之后的余数
++自增运算符,操作数自加1。前置++先++在使用,后置++先使用在++
--自减运算符,操作数自减1,前置--先--在使用,后置--先使用在--
namespace Operator
{class Program{static void Main(string[] args){int x = 13;int y = 3;Console.WriteLine("x + y: {0}", x + y);Console.WriteLine("x - y: {0}", x - y);Console.WriteLine("x * y: {0}", x * y);Console.WriteLine("x / y: {0}", x / y);Console.WriteLine("x % y: {0}", x % y);Console.WriteLine("x++: {0}", x++);Console.WriteLine("++x: {0}", ++x);Console.WriteLine("y++: {0}", y++);Console.WriteLine("++y: {0}", ++y);}}
}

在这里插入图片描述

关系运算符
运算符描述
==判断左右两操作数是否相等,并返回结果。这里容易写成赋值运算符=,所以可以将常量写在左侧,因为常量不能做左值,这样编译器会提示报错
!=判断左右两操作数是否不等,并返回结果。
>判断左操作数是否大于右操作数,并返回结果
< 判断左操作数是否小于右操作数,并返回结果
>=判断做操作数是否大于等于右操作数,并返回结果
<= 判断做操作数是否小于等于右操作数,并返回结果
namespace Operator
{class Program{static void Main(string[] args){int x = 13;int y = 3;Console.WriteLine("x == y is {0}", x == y);Console.WriteLine("x != y is {0}", x != y);Console.WriteLine("x > y is {0}", x > y);Console.WriteLine("x < y is {0}", x < y);Console.WriteLine("x >= y is {0}", x >= y);Console.WriteLine("x <= y is {0}", x <= y);}}
}

在这里插入图片描述

逻辑运算符
运算符描述
&& 逻辑与,全真为真
||逻辑或,有真为真
逻辑非,非真为真
namespace Operator
{class Program{static void Main(string[] args){bool T = true;bool F = false;Console.WriteLine("T && F is {0}", T && F);Console.WriteLine("T || F is {0}", T || F);Console.WriteLine("!T is {0}", !T);Console.WriteLine("!F is {0}", !F);}}
}

在这里插入图片描述

位运算符
运算符描述
& 按位与运算符,全1为1,有0为0
|按位或运算符,有1为1,全0为0
^按位异或运算符,相同为0,不同为1
~按位取反运算符,变0为1,变1为0
<< 左移运算符,向左移动操作数的指定位数,在末尾添0
>> 右移运算符,向右移动操作数的指定位数,有符号数在首位添符号位,无符号数添0
namespace Operator
{class Program{static void Main(string[] args){int a = 61; //0000 0000 0011 1101int b = 50; //0000 0000 0011 0010Console.WriteLine("a & b = {0}", a & b); // 0011 0000Console.WriteLine("a | b = {0}", a | b); // 0011 1111Console.WriteLine("a ^ b = {0}", a ^ b); // 0000 1111Console.WriteLine("~a = {0}", ~a); //1111 1111 1100 0010 ->1111 1111 1100 0001 ->1000 0000 0011 1110Console.WriteLine("b << 2 = {0}", b << 2); // 0000 0000 1100 0100Console.WriteLine("b >> 2 = {0}", b >> 2); // 0000 1100}}
}

在这里插入图片描述

  这里涉及到一个原反补的概念。

赋值运算符
运算符描述
= 赋值运算符,右边的值赋给左边
+= 左右操作数相加之后的值付给左操作数
-=左操作数减去右操作数,并将值赋给左操作数
*=左操作数乘上右操作数,并将值赋给左操作数
/= 左操作数除去右操作数,并将值赋给左操作数
%= 左操作数模右操作数,并将值赋给左操作数
<<= 左操作数左移右操作数位,并将结果赋值给左操作数
>>=左操作数右移左操作数位,并将结果赋值给左操作数
&=按位与并赋值
|= 按位或并赋值
^= 按位异或并赋值
namespace Operator
{class Program{static void Main(string[] args){int a = 61;int b = 50;int c = 0;c = b;Console.WriteLine("c = {0}", c);c += b;Console.WriteLine("c = {0}", c);c -= b;Console.WriteLine("c = {0}", c);c *= a;Console.WriteLine("c = {0}", c);c /= a;Console.WriteLine("c = {0}", c);c %= a;Console.WriteLine("c = {0}", c);c <<= 2;Console.WriteLine("c = {0}", c);c >>= 2;Console.WriteLine("c = {0}", c);c &= a;Console.WriteLine("c = {0}", c);c |= b;Console.WriteLine("c = {0}", c);c ^= a;Console.WriteLine("c = {0}", c);}}
}

在这里插入图片描述

其他运算符
运算符描述
sizeof()返回数据类型大小
typeof()返回class的类型
&取地址,返回变量地址
*解引用,*指针返回指针指向变量的值
? : 条件表达式,条件语句?条件语句为真执行这条语句:条件语句为假执行这条语句
is判断对象是否是某一类型
as强制转换,即使转换失败也不会抛出异常
typeof()返回class的类型
&取地址,返回变量地址
*解引用,*指针返回指针指向变量的值
? : 条件表达式,条件语句?条件语句为真执行这条语句:条件语句为假执行这条语句
is判断对象是否是某一类型
as强制转换,即使转换失败也不会抛出异常

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

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

相关文章

什么是面向对象编程

什么是面向对象编程&#xff1f;&#xff08;OOP&#xff09; ● 面向对象编程是一种基于对象概念的编程范式&#xff1b;&#xff08;所谓的编程范式&#xff0c;就是代码风格&#xff0c;我们“如何”编写和组织代码&#xff09;&#xff1b; ● 我们使用对象来模拟&#xf…

如何制作文件的二维码?支持设置文件下载功能

现在为了能够更快的将文件分享给其他人查看&#xff0c;会选择将文件转换二维码的方式&#xff0c;用户可以通过扫描二维码在手机上预览或者下载文件到本地&#xff0c;能够有效的减少文件对内存的占用&#xff0c;在很多场景下都有所应用&#xff0c;那么文件转二维码具体该怎…

LabVIEW电子水泵性能测试平台

开发了一种车用电子水泵性能测试平台&#xff0c;该平台以工控机为载体&#xff0c;利用LabVIEW开发上位机软件&#xff0c;采用PLC控制阀门和水泵等电气元件&#xff0c;通过RS485进行数据采集并传输到上位机。通过上位机与下位机的协同控制&#xff0c;实现了数据交互处理和性…

基于Java Web的考编论坛网站的设计与实现+lw+源码+讲解+调试+视频演示

第3章 系统分析 用户的需求以及与本系统相似的在市场上存在的其它系统可以作为系统分析中参考的资料&#xff0c;分析人员可以根据这些信息确定出本系统具备的功能&#xff0c;分析出本系统具备的性能等内容。 3.1可行性分析 尽管系统是根据用户的要求进行制作&#xff0c;但…

聚鼎贸易:装饰画生意能不能做起来2024

在2024年&#xff0c;随着人们对家居美学和个性化表达的需求日益增长&#xff0c;装饰画作为一种简单而直接的方式&#xff0c;来提升空间品味及展示个人风格的市场需求也随之扩大。许多人都对涉足这一行业抱有浓厚的兴趣&#xff0c;但究竟这门生意能否成功做大&#xff0c;需…

Unity 资源 之 战斗魔法咒语 - 第二卷(Combat Magic Spells - Volume II)

&#x1f389;Unity Asset Store 宝藏免费资源&#xff1a;战斗魔法咒语 - 第二卷 前言资源包内容领取兑换码 前言 各位游戏开发爱好者、Unity 开发者们&#xff0c;今天要给大家带来一个超棒的消息&#xff01;在 Unity Asset Store 上&#xff0c;全新的免费资源“战斗魔法咒…

Java高级重点知识点-27-Java反射机制

文章目录 Java反射机制概述理解Class类并获取Class的实例Class 类 类的加载与ClassLoader类加载过程类的初始化触发条件类加载器的作用ClassLoader 创建运行时类的对象获取运行时类的完整结构调用运行时类的指定结构反射的应用&#xff1a;动态代理Proxy类AOP&#xff08;Aspec…

JavaWeb系列二十一: 数据交换和异步请求(JSON, Ajax)

文章目录 官方文档official documents官方文件官方文件official documentsJSON介绍JSON快速入门JSON对象和字符串对象转换应用案例注意事项和细节 JSON在java中使用说明JSON在Java中应用场景应用实例 Ajax基本介绍Ajax是什么Ajax经典应用场景 Ajax原理示意图传统的web应用Ajax原…

Vue3打包发布,刷新出现的空白页面和错误

Vue3打包发布出现的错误&#xff1a;Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of text/html. Strict MIME type checking is enforced for module scripts per HTML spec. 第一次点击访问到这个路径&…

粉笔推出国内首个职教行业大模型,助力学员高效学习

7月12日&#xff0c;粉笔正式推出其自主研发的首个专注于职教行业的垂域大模型&#xff0c;并将于8月1日上线粉笔AI老师 “粉笔头”&#xff0c;为学员提供个性化、智能化的辅导服务。 在垂域大模型的基础上&#xff0c;粉笔结合10年来的教研积累、独有数据搭建RAG系统&#x…

使用MAVSDK向PX4模拟器发送启飞与降落指令

1.使用docker启动PX4模拟器 docker run --rm -it jonasvautherin/px4-gazebo-headless:1.14.3 开始启动 启动中 PX4启动成功 创建QGC连接 mavlink start -p -u 14556 -t 192.168.1.66 -o 14550 启动QGC连接PX4模拟器 在QGC中执行各种指令

TensorFlow系列:第五讲:移动端部署模型

项目地址&#xff1a;https://github.com/LionJackson/imageClassification Flutter项目地址&#xff1a;https://github.com/LionJackson/flutter_image 一. 模型转换 编写tflite模型工具类&#xff1a; import osimport PIL import tensorflow as tf import keras import …

电子画册制作全攻略,从零开始制作

在这个数字化时代&#xff0c;电子画册作为一种新型的传播媒介&#xff0c;已经越来越受到人们的青睐。它以生动活泼、互动性强、传播速度快等特点&#xff0c;迅速成为了企业宣传、个人展示的优质选择。那么&#xff0c;如何从零开始制作一款引人入胜的电子画册呢&#xff1f;…

数据结构——(双)链表

文章目录 1. 定义 2. 双链表和单链表的区别 3. 代码示例 3.1 双链表节点和结构定义 3.2 初始化双链表 3.3 返回双链表的长度 3.4 在指定位置插入元素 3.5 在末尾插入元素 3.6 删除指定位置的元素并返回被删除的元素 3.7 删除末尾元素 3.8 获取指定位置的元素 3.9 修…

AI网络爬虫019:搜狗图片的时间戳反爬虫应对策略

文章目录 一、介绍二、输入内容三、输出内容一、介绍 如何批量爬取下载搜狗图片搜索结果页面的图片?以孙允珠这个关键词的搜索结果为例: https://pic.sogou.com/pics? 翻页规律如下: https://pic.sogou.com/napi/pc/searchList?mode=2&start=384&xml_len=48&am…

C语言作业7 指针实现strlen,strcpy,strcmp和strstr功能

1、自定义函数(my_strlen)实现strlen函数的功能 2、自定义函数(my_strcpy)实现strcpy函数的功能 3、自定义函数(my_strcmp)实现strcmp函数的功能 4、自定义函数(my_strcat)实现strcat函数的功能 5、自定义函数(my_strstr)实现求src字符串中是否包含子串dest字符串 #include &l…

【C++】入门基础(一)

目录 一.命名空间&#xff1a;namespace 1.namespace的价值 2.namespace的定义 3.namespace的使用方法 3.1 域解析运算符:: 3.2 using展开 3.3 using域解析运算符 二.输入输出 三.缺省参数 四.函数重载 1.参数类型不同 2.参数个数不同 3.参数顺序不同 一.命名空间&…

开源项目的认识理解

目录 开源项目有哪些机遇与挑战&#xff1f; 1.开源项目的发展趋势 2.开源的经验分享&#xff08;向大佬请教与上网查询&#xff09; 3.开源项目的挑战 开源项目有哪些机遇与挑战&#xff1f; 1.开源项目的发展趋势 1. 持续增长与普及 - 开源项目将继续增长&#xff0c…

从小主机到第一台自组装NAS:升级与优化记录

目录 前言硬件系统安装的波折过程问题解决系统安装 套件/dockerjellyfin 功耗测试刚安装好系统插上缓存盘且运行了更多的套件和 docker 容器之后 温度场景一场景二场景三 后记参考 在使用了一年的小主机 NAS 后&#xff0c;我决定自己组装并安装新 NAS。本文详细记录了硬件选择…

烟雾自动监测报警摄像机

当今社会&#xff0c;安全意识日益增强&#xff0c;各种智能监测技术也在不断创新发展。烟雾自动监测报警摄像机作为其中的一种重要应用&#xff0c;正在为人们的生活和财产安全提供更加全面的保护。烟雾自动监测报警摄像机集成了先进的传感器技术和智能算法&#xff0c;能够高…