C#变量、常量与运算符

变量

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

变量定义

<data_type> <variable_list>

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

命名规则

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

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

  变量名区分大小写;

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

作用域和生命周期

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

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

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

常量

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

特殊字符常量
转义序列 含义
\\ \字符
\' '字符
\" "字符
\? ?字符
\a Alert或者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 1101
            int b = 50; //0000 0000 0011 0010

            Console.WriteLine("a & b = {0}", a & b); // 0011 0000
            Console.WriteLine("a | b = {0}", a | b); // 0011 1111
            Console.WriteLine("a ^ b = {0}", a ^ b); // 0000 1111
            Console.WriteLine("~a = {0}", ~a); //1111 1111 1100 0010 ->1111 1111 1100 0001 ->1000 0000 0011 1110
            Console.WriteLine("b << 2 = {0}", b << 2); // 0000 0000 1100 0100
            Console.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 强制转换,即使转换失败也不会抛出异常

相关推荐

  1. C语言变量常量..

    2024-07-13 10:20:03       42 阅读
  2. 突破编程_C++_面试(变量常量

    2024-07-13 10:20:03       48 阅读
  3. [python]变量常量

    2024-07-13 10:20:03       50 阅读
  4. C++-三目运算符注意点临时变量的坑

    2024-07-13 10:20:03       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 10:20:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 10:20:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 10:20:03       58 阅读
  4. Python语言-面向对象

    2024-07-13 10:20:03       69 阅读

热门阅读

  1. 【第33章】MyBatis-Plus之预防安全漏洞

    2024-07-13 10:20:03       28 阅读
  2. 【安全设备】上网行为管理

    2024-07-13 10:20:03       25 阅读
  3. 智能小车——底层配置

    2024-07-13 10:20:03       26 阅读
  4. PCIe总线的序

    2024-07-13 10:20:03       25 阅读
  5. 怎么知道服务器100M带宽可以支持多少人访问?

    2024-07-13 10:20:03       26 阅读
  6. [AI 大模型] Meta LLaMA-2

    2024-07-13 10:20:03       27 阅读
  7. Oracle逻辑备份

    2024-07-13 10:20:03       23 阅读
  8. c#视觉应用开发中如何在C#中处理图像噪声?

    2024-07-13 10:20:03       27 阅读
  9. 【ceph】ceph-mon重新选举的情况

    2024-07-13 10:20:03       27 阅读
  10. SpringBoot配置Swagger开启页面访问限制

    2024-07-13 10:20:03       25 阅读
  11. MFC常用数据类型类:CRect

    2024-07-13 10:20:03       25 阅读
  12. noi.openjude1.5 26统计满足条件的4位数个数

    2024-07-13 10:20:03       19 阅读