1 一維陣列
陣列:具有相同資料結構的元素組成的有序的資料集合。2 一維陣列的定義陣列元素:組成陣列的資料。
陣列下標:區分陣列元素的特定序號。
c語言中,陣列下標從0開始,第n個元素的下標是n-1,依次類推。
陣列是一種構造型別的資料,其組成元素可以是任何資料型別(包括復合型別)。
陣列變數需要先定義,後使用。定義陣列變數時,系統會為陣列在記憶體中分配一塊連續的空間進行儲存,空間的大小由陣列的型別和大小而定。
只有乙個下標的陣列。3 一維陣列的引用定義方式:
型別 陣列名[常量表示式]
例如:
int a[10];char str[50];
定義陣列下標的常量表示式只能是整型常量,如:
#define 100 n…int m[100];
char str[n];
不能使用變數名作為陣列定義時的下標,如:
int n=100;char str[n]; /*錯誤的定義方式*/
陣列賦初值:
int a[5]=; /*陣列元素 a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=0*/char s[5]=;
int m=;
只能對陣列的某乙個元素進行單獨的訪問,引用形式如下:4 多維陣列的定義陣列名[下標]
這裡的下標可以是乙個整型常量,也可以是乙個已賦值的整型變數、整型值表示式或者整型符號常量。
例如:
int a[5],n;n=3;
a[0]=1;
a[n]=a[n-1]+a[n-2];
陣列名a不能代表整個陣列的具體值,只代表陣列在記憶體中的首位址,即代表陣列元素a[0]在記憶體中的位址。
陣列名在程式中不能改變,不能對a進行表示式運算,如a++,a=n等等。
c語言本身不會對陣列做邊界檢查,陣列下標越界需要程式設計師自己設定。
由2個下標確定元素的陣列稱為二維陣列,由3個或3個以上下標確定元素的陣列稱為多維陣列。5 多維陣列的引用二維陣列定義方式如下:
型別 陣列名[常量表示式1 ][常量表示式 2]
如:
int a[3][4]這是乙個3行4列矩陣
元素賦值:
int a[3][4]=;也可以按行賦值:
int a[3][4]=,,};
2維陣列可以理解為一維陣列的一維陣列。
n維陣列可以理解為n-1維陣列的一維陣列。
只能對單個元素逐一進行引用。6 字元陣列與字串例如:
int a[3][4],b[10][10],i,j;a[i][j+1]=a[i][j-1]+a[i][j];
多維陣列在記憶體中的位址是按行序排列的。
(1) 字元陣列陣列元素型別為字元型的陣列,主要用於儲存一串連續的字元。
char 陣列名; /*定義一維字元陣列*/char 陣列名; /*定義二維字元陣列*/
例如:
char str[10];char str1[3][10];
賦值:
char str[7]=;char s[2]=,};(2) 字串
由雙引號括起來的字串行,例如:
「this is a test!」程式在定義字串時會在每個字串的後面自動加上乙個空操作符』/0』以示區別,但是在計算字串長度時,』/0』不會計入字串長度中。
』/0』作為字串的結束標誌而存在,』/0』會占用乙個元素的儲存空間,所以在定義字串陣列時,應在字串長度基礎上增加乙個元素,儲存』/0』。
char m=;char m=;
以上2行**表示的意思是不一樣的,後者等價於
char m=;
字串,字串陣列,字串指標!!
字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...
無冗餘輸入字串 字串陣列 字串陣列
問題 輸入乙個數字n,接下來輸入n個字串,要求無冗餘地儲存字串 分析 參考到無冗餘地字串輸入 使用動態分配。本題還參考了這個鏈結的內容 1 include include int main char p int ns,i scanf d ns p char malloc sizeof char fo...
字串 字串陣列 字元陣列的區別
string a newstring 字串 string a newstring 5 字串陣列 char a newchar 5 字元陣列 string a newstring abc 字串 string a newstring 字串陣列的賦值 string a 字串陣列的初始化 char a ne...