字符变量与字符常量

  • 字符变量是存放字符常量的char类型的变量 
  • 字符常量是字面量,即单独出现在表达式中的字面上的字符,如 'a' 。

二者的重要区别为所占字节大小的不同,如下:

 

字符变量占1个字节,字符常量占4个字节(C语言中是如此,C++中字符常量也占1字节);

那么为何字符常量要占4个字节?

这是因为在C语言中整形字面量类型默认为 int,如 123 就被默认为 int 而非 short 或 long,而浮点数字面量默认为double 。

又因为在C语言中,并没有真正的字符类型,其底层仍然是整形,只不过是使用ASCII码将整形变成了字符,所以字符的本质就是整形。故字符常量,即字符字面量,就是整形字面量,其大小理所当然也为4个字节。

### C# 字符变量常量的定义、区别及用法 #### 定义字符变量 在 C# 中,字符变量用于存储单个字符。其数据类型为 `char`。字符变量可以通过以下方式定义: ```csharp char variableName; ``` 随后可以对其进行赋值操作。例如: ```csharp char myChar = 'A'; ``` 需要注意的是,在 C# 中,字符需要用单引号 `' '` 来表示[^1]。 #### 初始化字符变量 字符变量可以在声明的同时进行初始化,也可以分开执行声明赋值操作。以下是两种常见的形式: - **声明并初始化**: ```csharp char letter = 'B'; // 同时声明初始化 ``` - **先声明再赋值**: ```csharp char symbol; symbol = '#'; // 先声明后赋值 ``` #### 定义字符常量 如果需要定义一个不可更改的字符值,则可以使用关键字 `const` 创建常量常量的特点是在程序运行期间无法修改其值,并且通常建议将其名称设置为全大写字母以便于区分。例如: ```csharp const char CONSTANT_CHAR = '@'; ``` 这里展示了如何创建一个名为 `CONSTANT_CHAR` 的字符常量,并赋予它固定不变的值 `'@'`[^2]。 #### 字符变量常量的区别 | 特性 | 变量 | 常量 | |-------------------|----------------------------------|-------------------------------| | 是否可变 | 是 | 否 | | 名字大小写约定 | 小驼峰命名法 (camelCase) | 大写 | | 使用场景 | 需要在程序中动态变化的数据 | 不会改变或者作为配置项使用的数值 | 另外值得注意的一点是,虽然两者都可以保存相同类型的值(即字符),但由于它们的本质差异——一个是固定的而另一个是可以随时更新的内容——所以在实际编码过程中应依据具体需求来决定采用哪种形式[^1][^2]。 #### 示例代码展示 下面提供一段简单的例子用来演示字符变量以及常量的实际运用情况: ```csharp using System; class Program { static void Main() { // 定义一个普通的字符变量 char normalVariable = 'X'; Console.WriteLine($"The value of the character variable is {normalVariable}"); // 修改该变量的值 normalVariable = 'Y'; Console.WriteLine($"After modification, it becomes {normalVariable}"); // 下面尝试定义一个字符常量 const char constantValue = '&'; Console.WriteLine($"\nThe unchangeable constant has been set to {constantValue}."); try{ // 这里会产生编译错误因为试图去改变一个已经被标记成const的东西 constantValue='Z'; }catch(Exception ex){ Console.WriteLine(ex.Message); } } } ``` 此段脚本首先建立了一个常规意义上的字母型别的局部成员叫做`normalVariable`, 并打印它的初始状态;接着再次指定新的内容给这个实体从而体现出了灵活性的一面。此同时我们也构建了一枚标志性的符号代表者恒定不变的概念—`constantValue`. 当试着重新分配其他任意值得时候就会触发异常机制提醒开发者注意违反原则的行为发生.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值