陣列 字串

2021-05-24 03:12:23 字數 2263 閱讀 1868

1 一維陣列

陣列:具有相同資料結構的元素組成的有序的資料集合。

陣列元素:組成陣列的資料。

陣列下標:區分陣列元素的特定序號。

c語言中,陣列下標從0開始,第n個元素的下標是n-1,依次類推。

陣列是一種構造型別的資料,其組成元素可以是任何資料型別(包括復合型別)。

陣列變數需要先定義,後使用。定義陣列變數時,系統會為陣列在記憶體中分配一塊連續的空間進行儲存,空間的大小由陣列的型別和大小而定。

2 一維陣列的定義

只有乙個下標的陣列。

定義方式:

型別 陣列名[常量表示式]

例如:

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=;

3 一維陣列的引用

只能對陣列的某乙個元素進行單獨的訪問,引用形式如下:

陣列名[下標]

這裡的下標可以是乙個整型常量,也可以是乙個已賦值的整型變數、整型值表示式或者整型符號常量。

例如:

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語言本身不會對陣列做邊界檢查,陣列下標越界需要程式設計師自己設定。

4 多維陣列的定義

由2個下標確定元素的陣列稱為二維陣列,由3個或3個以上下標確定元素的陣列稱為多維陣列。

二維陣列定義方式如下:

型別 陣列名[常量表示式1 ][常量表示式 2]

如:

int a[3][4]

這是乙個3行4列矩陣

元素賦值:

int a[3][4]=;

也可以按行賦值:

int a[3][4]=,

,};

2維陣列可以理解為一維陣列的一維陣列。

n維陣列可以理解為n-1維陣列的一維陣列。

5 多維陣列的引用

只能對單個元素逐一進行引用。

例如:

int a[3][4],b[10][10],i,j;

a[i][j+1]=a[i][j-1]+a[i][j];

多維陣列在記憶體中的位址是按行序排列的。

6 字元陣列與字串

(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...