C 字元陣列 定義和初始化 賦值和引用

2021-06-19 00:33:59 字數 1353 閱讀 1409

char c[6];//發現這裡無論定義多長用strcat會擴充陣列大小

c[0]='c'; c[1]='h';c[2]='i';c[3]='n';c[4]='a';c[5]='\0'; //不加零(結束標誌的話strcat是有問題)

char d[14]=;//定義時中的數字必須大於填充的值,這裡也演示了出現0x00陣列會被認為結束的現象,但在編譯的時候它又可以視別出長度不夠,這裡的0x00與\0等價

strcat(c,d);

printf("%s\n",c);

用來存放字元資料的陣列是字元陣列,字元陣列中的乙個元素存放乙個字元。字元陣列具有陣列的共同屬性。由於字串應用廣泛,c和c++專門為它提供了許多方便的用法和函式。

定義字元陣列的方法與前面介紹的類似。例如

char c[10];

c[0]=′i′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′;c[7]=′p′;c[8]=′p′;

c[9]=′y′;

上面定義了c為字元陣列,包含10個元素。在賦值以後陣列的狀態如圖5.7所示。

圖5.7

對字元陣列進行初始化,最容易理解的方式是逐個字元賦給陣列中各元素。如

char c[10]=;

把10個字元分別賦給c[0]~c[9]這10個元素。

如果花括號中提供的初值個數大於陣列長度,則按語法錯誤處理。如果初值個數小於陣列長度,則只將這些字元賦給陣列中前面那些元素,其餘的元素自動定為空字元。如果提供的初值個數與預定的陣列長度相同,在定義時可以省略陣列長度,系統會自動根據初值個數確定陣列長度。如

char c=;

也可以定義和初始化乙個二維字元陣列,如

char diamond[5][5]=,,,,};

只能對字元陣列的元素賦值,而不能用賦值語句對整個陣列賦值。如

char c[5];

c=; //錯誤,不能對整個陣列一次賦值

c[0]=′c′; c[1]=′h′;c[2]=′i′;c[3]=′n′;c[4]=′a′;  //對陣列元素賦值,正確

如果已定義了a和b是具有相同型別和長度的陣列,且b陣列已被初始化,請分析:

a=b;  //錯誤,不能對整個陣列整體賦值

a[0]=b[0];  //正確,引用陣列元素

例5.9 設計和輸出乙個鑽石圖形。

#include

using namespace std;

void main( )

,,,,};

int i,j;

for (i=0;i<5;i++)

}執行結果為

** *

*  *

* **

字元陣列的定義和初始化

1 字元陣列的定義與初始化 字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。char str 10 即把10個字元分別賦給str 0 到str 9 10個元素如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定為...

字元陣列初始化與賦值

char a 10 怎麼給這個陣列賦值呢?1 定義的時候直接用字串賦值 char a 10 hello 注意 不能先定義再給它賦值,如char a 10 a 10 hello 這樣是錯誤的!2 對陣列中字元逐個賦值 char a 10 3 利用strcpy char a 10 strcpy a,he...

陣列的定義和初始化

陣列是相同型別的有序集合。陣列是一種特殊的變數,一次性向計算機申請 一片 連續的空間。通過長度來控制要開闢多少個練習的空間 通過資料型別來控制每個空間的大小。宣告 資料型別陣列名 new 資料型別 長度 陣列的元素 陣列中儲存的具體的值.陣列的長度 陣列中能容納最大的元素的個數。資料下標 陣列是通過...