C#数组与字符串详解:一维数组及初始化
需积分: 0 117 浏览量
更新于2024-07-13
收藏 171KB PPT 举报
"本资源主要介绍了C#中的字符串声明与初始化,以及数组的定义和使用,包括一维数组和多维数组的概念。"
在C#编程语言中,字符串(string)是一种特殊的数据类型,用于存储文本信息。字符串的声明和初始化是编程中常见的操作。在C#中,我们可以使用以下方式定义并初始化一个字符串:
```csharp
string s = "abcdef";
```
这里的`"abcdef"`是字符串字面量,它被赋值给一个名为`s`的string类型的变量。这种方式简洁明了,字符串一旦初始化就不能改变。
数组是存储同类型数据集合的结构,它们在内存中连续存储。C#中的数组分为一维数组、二维数组、多维数组等。对于一维数组,声明和初始化的语法如下:
```csharp
int[] numbers = { 1, 2, 3, 4, 5 };
```
这定义了一个名为`numbers`的整型一维数组,并用字面量值初始化。另一种方式是先声明数组的大小,然后使用`new`关键字初始化:
```csharp
int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
```
这里我们先指定数组的长度为5,然后用`new`关键字分配内存并初始化每个元素。
此外,数组的下标从0开始,因此上述数组`numbers`包含了`numbers[0]`到`numbers[4]`五个元素。例如,如果`a`等于3,可以这样初始化数组:
```csharp
int a = 3;
int[] numbers = new int[a];
```
这个数组包含`numbers[0]`、`numbers[1]`和`numbers[2]`三个元素。
示例程序演示了如何创建一个字符串数组来存储球员的名字,并反向输出这些名字:
```csharp
using System;
using System.Collections.Generic;
using System.Text;
namespace Example1Of4
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入球员个数:");
int playerNo = int.Parse(Console.ReadLine());
string[] names = new string[playerNo];
for (int i = 0; i < names.Length; i++)
{
Console.WriteLine("请输入第{0}个球员的名字", i + 1);
names[i] = Console.ReadLine();
}
Console.WriteLine("你输入的球员名字分别是:");
for (int i = 0; i < names.Length; i++)
{
Console.WriteLine(names[i]);
}
Console.ReadLine();
}
}
}
```
此程序首先询问用户球员的数量,然后依次输入每个球员的名字,最后将输入的名字按原顺序和反向顺序输出。通过这个示例,我们可以看到如何动态地初始化和操作数组。
除了上述的一维数组,C#还支持多维数组,如二维数组,它们可以看作是数组的数组。例如,定义一个2x2的二维数组:
```csharp
int[,] matrix = new int[2, 2] { { 1, 2 }, { 3, 4 } };
```
这里,`matrix`是一个2行2列的矩阵,每个元素都可以通过行和列的索引来访问,如`matrix[0, 0]`、`matrix[0, 1]`、`matrix[1, 0]`和`matrix[1, 1]`。
交错数组(Jagged Array)是另一种形式的多维数组,它是一组数组的数组,每行可以有不同的长度。例如:
```csharp
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[2] { 1, 2 };
jaggedArray[1] = new int[3] { 3, 4, 5 };
jaggedArray[2] = new int[1] { 6 };
```
这种数组形式更加灵活,但处理起来相对复杂,因为每行都是独立的数组。
理解和掌握数组和字符串的声明、初始化及操作是学习C#编程的基础,它们在实际开发中有着广泛的应用。无论是简单的数据存储还是复杂的算法实现,数组和字符串都是不可或缺的工具。
2022-02-09 上传
2022-11-16 上传
2023-08-15 上传
2024-11-15 上传
速本
- 粉丝: 20
- 资源: 2万+
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常