详解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,一经查实,立即删除!

相关文章

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;电脑坏了。应用程序…

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

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

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…

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

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

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

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

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

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

C++ STL deque 容器底层实现原理(深度剖析)

点击蓝字关注我们什么是多态&#xff0c;多态有什么用途&#xff1f;定义&#xff1a;“一个接口&#xff0c;多种方法”&#xff0c;程序在运行时才决定调用的函数。实现&#xff1a;C多态性主要是通过虚函数实现的&#xff0c;虚函数允许子类重写override(注意和overload的区…

​常问的16个C语言问题,你能答上来几个?

点击蓝字关注我们最近不少小伙伴在找工作&#xff0c;这里我给大家分享一下面试中经常会遇到的一些嵌入式C语言问题&#xff0c;你看看能答上来几个呢&#xff1f;1用预处理指令#define 声明一个常数&#xff0c;用以表明1年中有多少秒&#xff08;忽略闰年问题&#xff09;#de…

centos linux 内核升级,Centos系统的升级及Linux 内核升级

系统及内核版本&#xff1a;[rootnode5 ~]# cat /etc/redhat-releaseCentOS Linux release 7.3.1611 (Core)[rootnode5 ~]# uname -aLinux node6 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux更新仓库&#xff1a;[rootnode5 yu…

spring javaee_JavaEE还是Spring? 都不行! 我们呼吁新的竞争者!

spring javaee如果您一直在Twitter上关注一些Java的重要人物&#xff0c;或者在Reddit上阅读了“新闻”&#xff0c;那么您一定不会错过Spring和JavaEE宣传人员之间热闹的“贱人之战”&#xff08;请原谅我的法语&#xff09;。 首先&#xff0c;于尔根霍勒&#xff08;JrgenH…

C语言代码优化的方法

点击蓝字关注我们在本篇文章中&#xff0c;我(指原作者)收集了很多经验和方法。应用这些经验和方法&#xff0c;可以帮助我们从执行速度和内存使用等方面来优化C语言代码。简介在最近的一个项目中&#xff0c;我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级JPEG库…

linux源码安装apache2,CentOS7编译安装Apache2

在LAMP环境下对于服务的安装是必不可少的&#xff0c;在linux环境下安装软件也有两种不同的方式&#xff0c;一种是yum安装当然了不同的linux发行版本使用略有不同&#xff0c;另一种是通过编译安装&#xff0c;编译安装要比yum安装要可控此&#xff0c;但是要比yum安装略微麻烦…

C/C++ 命中率比较高的面试知识点,你都答得上来吗

点击蓝字关注我们第一部分&#xff1a;计算机基础1. C/C内存有哪几种类型&#xff1f;C中&#xff0c;内存分为5个区&#xff1a;堆(malloc)、栈(如局部变量、函数参数)、程序代码区&#xff08;存放二进制代码&#xff09;、全局/静态存储区&#xff08;全局变量、static变量&…

svn: 没有演进历程信息_使用默认方法的接口演进–第二部分:接口

svn: 没有演进历程信息引入了默认方法以启用接口演进。 如果向后兼容性是不可替代的&#xff0c;则仅限于向接口添加新方法&#xff08;这是它们在JDK中的唯一用法&#xff09;。 但是&#xff0c;如果希望客户端更新其代码&#xff0c;则可以使用默认方法逐步演化接口而不会引…