形式同數值陣列:char c[10];。因字元與整數通用,亦可 int c[10](佔 2 位元組)。支援多維,如 char c[5][10];。
char c[10] = {'c',' ','p','r','o','g','r','a','m'};,未賦值元素自動為 0。char c[] = {'c',' ','p','r','o','g','r','a','m'}; 長度自動為 9。同普通陣列,透過下標存取。二維陣列範例:
char a[][5] = {{'B','A','S','I','C'},{'d','B','A','S','E'}};
for(i=0;i<2;i++) for(j=0;j<5;j++) printf("%c", a[i][j]);
\0C 無專屬字串型別,用字元陣列存放字串,以 \0 結束。初始化可用字串常數:
char c[] = "C program"; // 系統自動在末尾加 \0
記憶體圖示:

因有 \0,無須指定長度,系統自動處理。
char c[] = "BASIC\ndBASE";
printf("%s\n", c); // 格式字串 %s,引數給陣列名
char st[15];
scanf("%s", st); // 遇空格停止,不含空格
若需含空格字串,可分多陣列讀取:
char st1[6], st2[6], st3[6], st4[6];
scanf("%s%s%s%s", st1, st2, st3, st4);
scanf("%s", st) 中 st 為首址,不可寫 &st。陣列名代表首元素位址,&st 為陣列整體位址(類型不同)。

字元陣列專門存放字元,配合 \0 形成字串,支援字串函數操作;普通陣列存放數值,無結束標誌。詳細比較請見文末專文。