详解C语言的C#数组

点击蓝字

a840718cb4474e2e7b721bcc066c49dc.png

关注我们

数组是一种存储相同类型元素的固定大小顺序集合。数组用于存储数据集合,但一般会将数组视为存储在连续存储器位置的相同类型的变量的集合。

如果要存储表示100名称学生的分数,需要独立地声明100整数变量。例如:number0.number1...., number99这样单个独立变量。而如果使用一个数组变量来表示就省事多了。例如,首先声明数组:numbers,使用numbers[0],numbers[1]和...,numbers[99]来表示单个变量,数组中的元素可通过索引来访问。

所有数组是由连续的内存位置组成。最低的地址对应于第一个元素,而最后一个元素的地址最高。

ae8a428454cdf5c792824a72346ba132.png

声明数组

要在 C# 中声明一个数组,可以使用以下语法:

datatype[] arrayName;复制代码类型:[csharp]

  其中 :

  datatype :用于指定数组中元素的类型。

  [] :指定数组序号,rank指定数组的大小。

  arrayName :指定数组的名称。

例如,

double[] balance;复制代码类型:[csharp]

初始化数组

声明数组不会将数组初始化到内存中。将数组变量初始化时,可以为数组指定值。

数组是一个引用类型,因此需要使用new关键字来创建数组的实例。例如,

double[] balance = new double[10];复制代码类型:[csharp]

数组赋值

可以通过使用索引数为各个数组元素分配值,如:

double[] balance = new double[10];
balance[0] = 1500.0;
balance[1] = 1000.0;
balance[2] = 2000.0;复制代码类型:[csharp]

也可以在声明时为数组指定值,如下所示:

double[] balance = { 240.08, 523.19, 121.01};
复制代码类型:[csharp]

还可以在创建时初始化数组,如下所示:

int [] marks = new int[5]  { 89,  98, 97, 87, 85};
复制代码类型:[csharp]

也可以省略数组的大小,如下所示:

int [] marks = new int[]  { 100,  97, 96, 97, 95};复制代码类型:[csharp]

可以将数组变量复制到另一个目标数组变量中。在这种情况下,目标和源都指向相同的内存位置:

int [] marks = new int[]  { 99,  98, 92, 97, 95};
int[] score = marks;复制代码类型:[csharp]

创建数组时, C# 编译器会根据数组类型将每个数组元素初始化为默认值。例如,对于int类型的数组,所有元素都将初始化为0。

访问数组元素

通过索引和数组名称来访问数组的元素。这是通过将元素的索引放在数组的名称后面的方括号内完成的。例如,

double salary = balance[9];复制代码类型:[csharp]

以下示例演示了如何声明,赋值和访问数组:

using System;
namespace ArrayApplication
{class MyArray{static void Main(string[] args){int []  n = new int[10]; /* n is an array of 10 integers */int i,j;/* initialize elements of array n */for ( i = 0; i < 10; i++ ){n[ i ] = i + 100;}/* output each array element's value */for (j = 0; j < 10; j++ ){Console.WriteLine("Element[{0}] = {1}", j, n[j]);}Console.ReadKey();}}
}复制代码类型:[csharp]

当编译和执行上述代码时,会产生以下结果:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109复制代码类型:[csharp]

使用foreach循环

在前面的例子中,我们使用for循环访问每个数组元素。还可以使用foreach语句来遍历数组。参考以下代码 :

using System;
namespace ArrayApplication
{class MyArray{static void Main(string[] args){int []  n = new int[10]; /* n is an array of 10 integers *//* initialize elements of array n */for ( int i = 0; i < 10; i++ ){n[i] = i + 100;}/* output each array element's value */foreach (int j in n ){int i = j-100;Console.WriteLine("Element[{0}] = {1}", i, j);}Console.ReadKey();}}
}复制代码类型:[csharp]

当编译和执行上述代码时,会产生以下结果:

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109复制代码类型:[csharp]

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

c44ae599c787c7213e2b968bd9a9f437.png

2860591450916210ed540df57817fcf3.gif

戳“阅读原文”我们一起进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jdk注解_我们正在下注:这个注解很快就会出现在JDK中

jdk注解Yahor最近提出的Stack Overflow问题引起了我的兴趣&#xff1a; 如何在Java 8编译时确保方法签名“实现”功能接口 。 这是一个很好的问题。 让我们假设以下名义类型&#xff1a; FunctionalInterface interface LongHasher {int hash(long x); }该类型强加了清晰的合同…

oracle的连接函数,Oracle各种连接函数总结

1.前言Oracle可用连接函数会介绍以下几个Oracle列转行函数 Listagg()strcat()wmsys.wm_concat()2.Oracle列转行函数 Listagg()2.1最基础的用法&#xff1a;LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)用法就像聚合函数一样&#xff0c;通过Group by语句&#xff0c;把每个Gr…

抽象工厂模式设计模式_21世纪的设计模式:抽象工厂模式

抽象工厂模式设计模式这是我的演讲的第二部分&#xff0c;“ 21世纪的设计模式” 。 此模式在Java代码中到处都有使用&#xff0c;尤其是在更多“企业”代码库中。 它涉及一个接口和一个实现。 该界面如下所示&#xff1a; public interface Bakery {Pastry bakePastry(Toppi…

对 C 语言指针最详尽的讲解

点击蓝字关注我们指针对于C来说太重要。然而&#xff0c;想要全面理解指针&#xff0c;除了要对C语言有熟练的掌握外&#xff0c;还要有计算机硬件以及操作系统等方方面面的基本知识。所以本文尽可能的通过一篇文章完全讲解指针。为什么需要指针&#xff1f;指针解决了一些编程…

app http routes.php,Laravel:我的应用程序没有被路由(Laravel : My app doesn't get routed)

Laravel&#xff1a;我的应用程序没有被路由(Laravel : My app doesnt get routed)我正在运行我的第一个laravel应用程序&#xff0c;在接下来的几个小时中遇到依赖项安装错误。对不起它可能是一个小错误&#xff0c;但似乎我无法找到。图片较暗&#xff0c;电脑坏了。应用程序…

ssm 返回json配置_摆脱困境:将运行时配置作为JSON返回

ssm 返回json配置如果需要确定部署到远程服务器的Spring Web应用程序的运行时配置&#xff0c;则需要读取从远程服务器找到的属性文件。 这很麻烦。 幸运的是&#xff0c;有更好的方法。 这篇博客文章描述了我们如何 启动我们的Web应用程序时&#xff0c;将运行时配置写入日志…

为什么 Android 必须在主线程更新 UI ?

点击蓝字关注我们为什么Android必须在主线程更新UI&#xff1f;站在各位大牛的肩膀上&#xff0c;谢谢&#xff01;正常情况下&#xff0c;Android需要在UI线程更新UI&#xff0c;然鹅&#xff0c;在特殊情况下&#xff0c;子线程也能更新UI不在讨论之列&#xff0c;这篇文章主…

如何对linux文件进行编译,Linux下将源文件编译成目标文件的过程解析

简介请讲一下linux如何源文件逐步编译成可执行文件。解答首先先上图对编译的整个过程有个感性的认识&#xff0c;然后再逐步分析各个过程。以hello.c 程序为例# include main{printf("hello\n");}一个.c源程序需要经过预处理器生成.i文件&#xff0c;再经过编译器生成…

eclipse m2e配置_使用此首选项可加快Eclipse m2e配置

eclipse m2e配置谁不认识他们。 Eclipse中的旧式JFace对话框可以使您直观地看到实际上是一个相当简单的XML或属性文件。 对于m2e&#xff0c;它看起来像这样&#xff1a; 不幸的是&#xff0c;此屏幕的加载速度有点慢&#xff0c;除了检查版本号和其他您将永远不会更改的东西…

学点 STL C++ 的线性容器

点击蓝字关注我们std::array看到这个容器的时候肯定会出现这样的问题&#xff1a;为什么要引入 std::array 而不是直接使用 std::vector&#xff1f;已经有了传统数组&#xff0c;为什么要用 std::array?先回答第一个问题&#xff0c;与 std::vector 不同&#xff0c;std::arr…

linux at查看进程命令,at命令 - Linux命令大全 | linux教程

at命令允许指定运行脚本时间&#xff0c;at的守护进程atd会以后台模式运行&#xff0c;检查系统上的一个特殊目录来获取at命令的提交的作业。默认情况下&#xff0c;atd守护进程每60秒检查一次目录。有作业时会检查作业运行时间&#xff0c;如果与当前时间匹配&#xff0c;则运…

java替换数组中的元素_如何使用Java 8流快速替换列表中的元素

java替换数组中的元素假设您有一个项目清单&#xff1a; List<String> books Arrays.asList("The Holy Cow: The Bovine Testament","True Hip Hop","Truth and Existence","The Big Book of Green Design" );&#xff08;不要…

C++:良好的编程习惯与编程要点

点击蓝字关注我们以良好的方式编写C class假设现在我们要实现一个复数类complex&#xff0c;在类的实现过程中探索良好的编程习惯。① Header(头文件)中的防卫式声明complex.h: # ifndef __COMPLEX__ # define __COMPLEX__ class complex {} # endif防止头文件的内容被多次包含…

如何使用man命令linux,Linux man命令的使用方法

Linux提供了丰富的帮助手册&#xff0c;当你需要查看某个命令的参数时不必到处上网查找&#xff0c;只要man一下即可。可以使用man man 查看man的使用方法1.man共有以下几个章节代码功能1标准用户命令(Executable programs or shell commands)2系统调用(System calls)functions…

linux adb 端口,linux 无法连接adb 设备

之前电脑linux 连接 adb 设备一直都是正常的&#xff0c;今天突然出现无法连接的情况adb shell出现下面的错误信息error: insufficient permissions for deviceadb device出现下面的信息List of devices attached????????????no permissions解决方法lsusb 查看adb…

php 系统交互 删除文件_FileSystemMap:与文件系统交互的自然方法

php 系统交互 删除文件作为项目的一部分&#xff0c;我目前正在研究创建FileSystemMap 。 我已经开始了一个非常小的GitHub的项目在这里举办的代码。 本质上&#xff0c;此映射实现将允许用户与其文件系统上的目录进行交互&#xff0c;就好像它是java.util.Map 。 映射中的每个…

又要卷?挑战 C 语言,新的系统编程语言 Hare 发布

点击蓝字关注我们开发者 Drew DeVault 公布了一门新的系统编程语言 Hare &#xff08;野兔&#xff09;。Hare 的开发时间接近两年半&#xff0c;它使用静态类型系统、手动内存管理和最小运行时&#xff0c;非常适合编写操作系统、系统工具、编译器以及其他低级高性能任务。据 …

java cuba_CUBA平台–新的Java企业应用程序框架

java cuba所以..你好&#xff0c;世界&#xff01; 我们的英语网站终于可以正常使用了&#xff0c;现在每个人都可以下载该平台&#xff0c;并可以以前所未有的速度更快地创建业务应用程序。 在我们决定与国际Java社区共享足够好之前&#xff0c;我们花了六年的永久发展和偶尔的…

linux设备驱动开发详解源码,linux设备驱动开发详解光盘源码.rar

压缩包 : linux设备驱动开发详解光盘源码.rar 列表19/busybox源代码/busybox-1.2.1.tar.bz219/MTD工具/mtd-utils-1.0.0.tar.gz19/nand驱动范例/s3c2410.c19/nor驱动范例/s3c2410nor.c19/yaffs&yaffs2源代码/yaffs.tar.gz19/yaffs&yaffs2源代码/yaffs2.tar.gz20/USB串口…

进程、线程、协程三个概念傻傻分不清

点击蓝字关注我们进程&#xff0c;是并发执行的程序在执行过程中分配和管理资源的基本单位&#xff0c;每一个进程都有一个自己的地址空间&#xff0c;即进程空间或&#xff08;虚空间&#xff09;。进程空间的大小 只与处理机的位数有关&#xff0c;一个 16 位长处理机的进程空…