变量与数据类型

一、基本概念

1. 什么是变量

变量是内存中一块命名的存储空间,用来存储数据,程序运行中值可以被修改。
语法格式:

// 格式:数据类型 变量名 = 初始值;
int age = 18;

2. 变量命名规则

  1. 只能由**字母、数字、下划线_**组成
  2. 不能以数字开头
  3. 不能使用 C# 关键字(如 intstringclass
  4. 区分大小写(Namename 是两个变量)
  5. 推荐规范:
    • 局部变量:小驼峰userName
    • 类/常量:大驼峰(UserName

二、C# 两大数据类型分类

C# 数据类型分为 值类型引用类型

(一)值类型(Value Type)

数据直接存放在栈内存,赋值是值拷贝,修改互不影响。
常用内置值类型:

1. 整型(整数)
类型 字节 取值范围 示例
sbyte 1 -128 ~ 127 sbyte a = 10;
byte 1 0 ~ 255(无符号) byte b = 20;
short 2 -32768 ~ 32767 short s = 100;
ushort 2 0 ~ 65535 ushort us = 200;
int 4 -2¹⁰左右,最常用 int num = 1000;
uint 4 0 ~ 4294967295 uint un = 5000;
long 8 超大整数 long l = 9999999999;
ulong 8 无符号长整型 ulong ul = 88888;
2. 浮点型(小数)
  • float:单精度,4字节,赋值后缀加 f
    float f = 3.14f;
    
  • double:双精度,8字节,默认小数类型(最常用)
    double d = 3.1415;
    
  • decimal:高精度小数,适合金额/金融,后缀 m
    decimal money = 99.99m;
    
3. 布尔类型

bool:只有两个值 true(真) / false(假),占1字节

bool isOk = true;
bool isFail = false;
4. 字符类型

char:存储单个字符,用单引号包裹,占2字节

char ch = 'A';
char ch2 = '5';

补充:值类型还包含结构体 struct、枚举 enum


(二)引用类型(Reference Type)

数据存放在堆内存,变量本身存的是内存地址,赋值是地址拷贝。
常用引用类型:

1. 字符串 string(最常用)

存储一串字符,双引号包裹

string str1 = "Hello C#";
string str2 = ""; // 空字符串

特点:string 不可变,每次修改都会生成新字符串。

2. object 类型

所有类型的父类,可以存放任意数据

object obj1 = 123;
object obj2 = "文本";

其他引用类型:数组、类 class、接口、委托等。


三、变量的几种声明方式

1. 先声明,后赋值

int num;
num = 100;

2. 声明并初始化(推荐)

int num = 100;

3. 一次声明多个同类型变量

int a = 1, b = 2, c;

4. 隐式类型 var

编译器自动推断数据类型,必须初始化,只能用于局部变量

var name = "张三";  // 推断为 string
var age = 20;       // 推断为 int

四、类型转换

1. 隐式转换(自动转换)

小范围 → 大范围,系统自动完成,不会丢失数据

int a = 100;
double b = a; // int 自动转 double

2. 显式转换(强制转换)

大范围 → 小范围,手动强制,可能丢失精度
语法:(目标类型)变量

double d = 3.99;
int num = (int)d; // 结果:3,小数直接截断

3. 字符串与基本类型转换

使用 Convert 类 / 类型自带 Parse 方法

// 字符串转 int
string s = "123";
int n = int.Parse(s);
int n2 = Convert.ToInt32(s);

// int 转字符串
int m = 456;
string str = m.ToString();

五、常量

常量:值固定不可修改,关键字 const,声明时必须赋值

const double PI = 3.1415926;
// PI = 3.14;  报错,常量不能二次赋值

六、完整示例代码(可直接运行)

using System;

class Program
{
    static void Main()
    {
        // 1. 值类型演示
        int age = 22;
        double score = 95.5;
        bool isStudent = true;
        char sex = '男';

        // 2. 引用类型 string
        string name = "小明";

        // 3. 隐式类型 var
        var height = 175.5;

        Console.WriteLine("姓名:" + name);
        Console.WriteLine("年龄:" + age);
        Console.WriteLine("成绩:" + score);

        // 4. 类型转换
        string strNum = "666";
        int num = int.Parse(strNum);
        Console.WriteLine("转换后数字:" + num);
    }
}

七、笔记总结(考点/重点)

  1. 变量:命名空间 + 类型 + 变量名 + 赋值,局部变量必须初始化。
  2. 分类:值类型(栈)引用类型(堆)
  3. 常用类型:intdoubleboolcharstring
  4. var 隐式类型:编译器推断,必须初始化。
  5. 转换:小转大自动,大转小强制,字符串用 Parse/Convert
  6. const 常量:只读,定义时赋值。

更多推荐