程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 認識C#數組,了解數組類型、學習定義及初始化(1)

認識C#數組,了解數組類型、學習定義及初始化(1)

編輯:關於C語言

以下是我在給學生講解數組時采用的PPT的大綱內容(粗體),由於本人知識上的欠缺,可能在很多知識點上把握不准,所以我會把我要給 學生講解的語句(不加粗)同時寫出,希望有路過我這份教案的人給予指點,如何能夠給可能只有c語言基礎知識的學生講解清楚,同時讓他們 理解其實際項目中的用法。

一:我們來認識數組,了解數組類型、學習定義及初始化

數組是同一數據類型的一組值

首先我 們將介紹幾個概念有助於你們理解數組。數組是一種具有相同類型和名稱的變量的集合,如一組整數、一組字符等。組成數組的這些變量被稱 為數組的元素,元素的個數也稱為數組的長度、數組的容量,容量一旦創建了,便固定了,此數組的元素個數也就不能增加或減少了。

每個數組元素都有一個編號,這個編號叫做下標,這個下標也稱為索引,一個有n個元素的數組,其索引是從0~n-1為止。索引以及容量這些數 組對象的特性,在數組對象創建的時候便固定了,當利用索引操作時,不可以超出定義的容量,以免發生數組索引超出界限的錯誤。

在 c語言中,數組也會存在索引越界的情況,但是在編譯時一般不會體現出來,可能會順利的通過,但是卻為你的程序帶來了隱患,如果用戶操作 不當,超出容量了,程序就會出現錯誤。VS就解決了這個問題,在編譯時發現越界就會報錯,將危險停留在編程階段,減少了程序的不穩定性 。

同學們現在是不是有點疑惑,為什麼要用數組來存放數據呢?我定義多個變量來存放數據不行嗎?用數組有什麼好處呢?

讓 我們用數組的下個特性來解釋吧!

數組屬於引用類型,存儲在托管堆內存中 ,指針在線程堆棧中。

引用類型的數值,會把在托管 堆中分配一塊專門的位置存放數據,然後在線程堆棧中存放著指向數據存儲的內存地址,因為數組是引用類型,這樣它增加、修改數組中的元 素都會按照索引將元素排列在一起,就像班級中學生的學號一樣,你按照學號(索引)就可以對學生的如成績、信息進行操作,你只需定義一 個數組變量,記住它的名字就可以方便進行各種你想達到的效果。不會像簡單數值類型那樣,你得記住班級每個學生的名字才能進行工作,修 改或刪除信息都不方便,而且他們的存放位置也不一定連續,這勢必會降低程序的效率,所以你可以利用數組,組織所要管理的數據,例如, 記錄按日、按月……消費的流水賬,記錄員工的工作效率等。

接下來,我們看一下數組的定義及初識化。

一維數 組的定義及初識化:

type[] arrayname={value1,value2,……,valueN}; //定義了數據類型同時賦值。

type[] arrayname=new type[N]{v1,v2,……,vN};  //使用new關鍵字定義同時賦值。此處的N可以省略,因為定義類型後已經賦了N個初 值。

在這裡第一次出現了new這個關鍵字,它是c#中很常用的,也是你們現在比較難理解的概念,你們現在只需要知道new的過程實際上 就是給數組在托管堆 中分配了一塊位置,用來存放數據就可以了,以後我們在學習到類時會專門講解。 接下來要看到的這種定義是我要強調 的。

數組元素初始化或給數組元素賦值都可以在聲明數組時或在程序的後面階段中進行。也就是說,你可以像下面的例子一樣,先定義 ,但這是要寫上N,告訴編譯器定義了N個元素。

type[] arrayname=new type[N];        //先定義N個元素

這種定義 後.Net會先為數組中的每個元素根據類型賦予同一個默認值。如int型,便給每個元素賦值為0;string類型為“”。當你想對那個 元素進行操作時,就按照索引給它賦值。如:

arrayname[0]=value1; arrayname[N-1]=valueN;

type[] arrayname;            //這種方法是將第二種定義方法拆分成兩步

arrayname=new type[N]{v1,v2,……,vN}; //此處的N也是可以 省略的,道理相同。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved