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 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强制转换,即使转换失败也不会抛出异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜君竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值