一、專題學習之陣列
(一)陣列的基本概念
1、陣列是一組有序資料的集合,下表代表資料在陣列中的編號;
2、用乙個陣列名(如s)和下標(如15)來唯一確定陣列中的元素;
3、陣列中的每乙個元素都屬於同乙個資料型別。
注:不能把不同的資料型別的資料放在同一陣列中,如:學生的成績和姓名。把陣列與迴圈結合起來可以有效的處理大批資料。
(二)一維陣列的定義和引用
1、定義:有哪些資料組成陣列,陣列中有多少元素,屬於那種資料型別。
注:①陣列名的命名規則和變數名相同;
②陣列的方括號中使用常量表示式,常量表示式中可以包括常量和符號常量,如「int a[3+5]是合法的,不能包含變數,如「int a[n]」非法。即c語言不允許對陣列的大小作動態的定義。
但當被呼叫的函式(非主函式)中定義的陣列長度可以是變數或非常量表示式,這時int a[2*n];合法,n的值從實參傳來。但定義前加了static表示靜態而變為非法;
③陣列均是從下標為0開始賦值。
2、陣列的初始化:在定義陣列的同時進行賦值
①如果只賦值一部分,則餘下的部分預設系統賦值為0,字元型則為』\0』,指標型為null;
②如果想全部賦值為0可以為:a[10]=;
③如果賦全值則[ ]中可不用填寫長度,如:a=;長度預設為3;
(三)多維陣列
1、二維陣列的定義:型別說明符 陣列名[常量表示式][常量表示式];例如:float a[3][4],b[2][3];
注:用矩陣形式表示二維陣列,是邏輯上的概念,實際在記憶體中,各元素是連續存放的,是線性的。
2、三維陣列的定義,例如:float a[2][3][4]; //定義三維陣列a,它有2頁,3行,4列
3、二維陣列的引用:陣列名[下標][下標];
①陣列元素可以出現在表示式中:b[1][2]=a[1][2]/2;
②陣列的使用和二維陣列一樣,均從0開始。
4、二維陣列的初始化:
①分行進行賦值。例如:
int a[3][4]=,,};
②按陣列元素在記憶體中的排列順序對各元素賦初值,例如:
int a[3][4]=;
③對部分元素賦初值,例如:
int a[3][4]=,,};
其餘元素值自動為0。
④對各行中的某一元素賦初值,例如:
int a[3][4]=,,};
⑤對某幾行元素賦值,例如:
int a[3][4]=,};
int a[3][4]=,{},};
⑥如果對全部元素都賦初值,則定義陣列時對第1維的長度可以不指定,但第2維的長度不能省。例如 :
int a[4]=;
定義時也可以只對部分元素賦初值而省略第1維的長度,但應分行賦初值。例如:
int a[4]=,,};
(四)字元陣列
注:c語言中沒有字串型別,字串是存放在字元型陣列中的。
1、字元陣列的定義
用來存放字元資料的陣列是字元陣列,字元陣列中的乙個元素存放乙個字元。例如:
char c[10];
c[0]=』i』;c[1]=』 』;……;c[9]=』y』;
字元型資料是以整數形式(ascii)存放的,因此也可以用整型陣列存放字元資料,例如:
int c[10];
c[0]=』a』;
2、字元陣列的初始化
①「初始化列表」,把各個字元一次賦值給陣列中的各元素,例如:
char c[10]=;
②如果賦的初值個數大於陣列長度則會溢位,小於陣列長度其餘的元素自動定為空字元(『\0』),如果長度相同則可以省略陣列長度,系統自動根據初值個數確定陣列長度。
③字元陣列中的元素的引用
C 學習筆記day12 標準C語言
字串的輸入 char str 10 scanf s char 通過這樣的方式是可以從快取區中拿到字串。如果快取區內的字元長度比字元陣列的長度大,將會產生兩個問題 1 字串結尾的 0 字元會丟失 2 即使超出了字元陣列的範圍,還是會不斷的往這個字元陣列後面的記憶體繼續寫。這樣就會破壞掉記憶體中的其他資...
前端學習Day12
一 定位 1.position static absolute relative 2.position fixed 固定定位 a 參照物 瀏覽器視窗 b 不佔據空間,脫離布局流 3.讓乙個元素在瀏覽器視窗左右上下居中?第一種方法 前提 已知寬和高 position fixed left 50 top...
matlab cody學習筆記 day12
input n 5 output a is 3 3 3 3 3 3 2 2 2 3 3 2 1 2 3 3 2 2 2 3 3 3 3 3 3 如何生成乙個靶心矩陣。答 function a bullseye n a ceil sqrt spiral n 2 0.5 spiral n 命令生成n維從...