C# 入门之数据类型与运算符

数据类型

在 C# 中,支持多种数据类型,不过我们常用的一般有三大类,一种是数值类型,一种是字符类型,最后一种是布尔类型。

在 C# 数值类型被分为了很多小的类型,如 int 整数型,long 表示长整数类型,float 浮点类型(单精度)等等。

我们这里不一一介绍所有的数据类型,会介绍几种常用的数据类型:

  • int:整数类型,用于表示 -2147483648 和 2147483643 之间的整数;
  • long:长整数类型,用于表示 -9223372036854775808 和 9223372036854775807 之间的整数;
  • float:单精度浮点数,支持 7 位小数;
  • double:双精度浮点数,支持 16 位小数位数;
  • char:字符类型(16 位 Unicode 字符);
  • string:字符串类型,没有具体的长度限制;
  • bool:只有 TRUE 和 FALSE 两个值

对于前面的大家应该不难理解,最后的两个 char 和 string 很多人应该会迷糊,我刚开始的时候也非常迷糊。

那么 char 和 string 之间有什么区别呢? 首先是长度,char 在 C# 中属于 Value type,有固定的长度限制,为 16 位,即 2 个字节,而 string 在 C# 中属于 Reference type,所以没有固定的长度,它的长度取决于它内部包含的字符的长度。
char 数据类型一般使用单引号应用,如,'A', 'B',如果想表达多个值,你需要使用数组,即 {'A', 'B', 'C'};
string 数据类型,一般使用双引号,如,"C# 入门", "C# 数据类型”;

其次,char 也是一个基础类型,可以用于表示 0 到 65535 之间的整数。

运算符

算数运算符:
https://ithelp.ithome.com.tw/upload/images/20210902/20099494GY9vx2RTdr.png

在算数运算符中,有一对比较特殊的一元运算符:

  • ++:总是使操作数加 1
  • --:总是使操作数减 1

它特殊在位置,在不同的位置,结果不同:
var1 = var1++

using System;

namespace operator1
{
    class Program
    {
        static void Main(string[] args)
        {
            int var1 = 1;
            var1 = var1++;
            Console.WriteLine($"{var1}");
        }
    }
}

运行结果:
https://ithelp.ithome.com.tw/upload/images/20210902/2009949403gtr53dBN.png

var1 = ++var1

using System;

namespace operator1
{
    class Program
    {
        static void Main(string[] args)
        {
            int var1 = 1;
            var1 = ++var1;
            Console.WriteLine($"{var1}");
        }
    }
}

运行结果:
https://ithelp.ithome.com.tw/upload/images/20210902/20099494UnZT5DtbJp.png

运算符的优先级:
优先级由高到低的顺序为:

  • 后缀增量 x++ 和减量 x-- 运算符
  • 前缀增量 ++x 和减量 --x 以及一元 + 和 - 运算符
  • 乘法 、/ 和 % 运算符
  • 加法 + 和 - 运算符

还有一些其他的运算符,如,比较运算符,布尔运算等,这些会在后面将到逻辑处理的时候,会有介绍到,这里就不多介绍了。更多关于数据类型和运算符的内容,大家可以查看微软的官方文档:
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/value-types


<<:  Day2 资料储存 - block storage基础

>>:  Day2 - 自由接案也是一种职涯选择

AI ninja project [day 13] 回归

这应该也是学习深度学习时的基础课程, 不确定跟图像分类比,哪一个会先学到, 但是在接触深度学习框架时...

资安学习路上-picoCTF 解题(Web)2

4. Some Assembly Required 1 按右键,检视网页原始码 点击js档看到下面,...

day31 虽然没有写完,但是还是要有summary

第一次写文章,其实我没有什麽自信能够写得好,毕竟我一直都不够厉害,所以也觉得自己没能写出什麽;後来真...

资安这条路 27 - [服务器软件]Web 应用服务器-Tomcat、Weblogic、Websphere、Jboss

Tomcat 开放原始码,支援 JSP 和 servlets 的 Web 应用服务器 切勿使用 ro...

javascript变数与运算子2

接下来介绍各种运算子,也是用程序码跟注解做说明 以下是执行程序 ...