字符数组可以在定义时进行初始化.有两种初始化方法.
方法1:逐个字符赋给数组中各元素.这种方法最容易理解.例如:
char c[5]={ 'H','a','p','p','y' };
把5个字符分别赋给c[0]至c[4].以下是几点说明:
(1) 如果大括号内提供的初值个数(即字符个数)大于数组长度,则编译时将出错.如果初值个数小于数组长度,则只将这些字符赋给前面的数组元素,其余的元素自动赋空字符(即'/0').例如:
引用:
char c[10]={ 'h','e','l','l','o' }; |
数组状态如下所示:
引用:
c[0]=h , c[1]=e , c[2]=l , c[3]=l , c[4]=o c[5]=/0, c[6]=/0, c[7]=/0, c[8]=/0, c[9]=/0 |
引用:
char c[]={ 'p','r','o','g','r','a','m' }; |
(3) 也可以给多维数组初始化.如下初始化二维数组的例子:
引用:
char trinangle[3][5]={ { ' ',' ','o' },{ ' ','o','o','o' },{ 'o','o','o','o','o' } }; |
引用:
o ooo ooooo |
引用:
main() /*输出如上三角形*/ { char trinangle[3][5]={ { ' ',' ','o' },{ ' ','o','o','o' },{ 'o','o','o','o','o' } }; int i,j; for(i=0;i<=2;i++) /*外层列循环*/ { for(j=0;j<=4;j++) /*内层行循环*/ printf("%c",trinangle[i][j]); printf("/n"); /*每循环一次,换行一次*/ } } |
引用:
char c[]={ "Good idea" }; |
引用:
char c[]={ 'G','o','o','d',' ','i','d','e','a','/0' }; |
引用:
char c[]={ 'G','o','o','d',' ','i','d','e','a' }; |
引用:
小提示:'/0'代表ASCII码为0的字符,它是一个"空操作符",即使什么也不做.C语言用它来作为字符串结束标志,作用是便于测定字符串的实际长度,例如有一个字符串,其中第10个字符为'/0'则此字符串的有效字符为9个.也就是说,在遇到字符'/0'时,表示字符串结束,由它前面的字符组成字符串实际长度. |
引用:
char c[4]={ 'L','O','V','E' }; char c[4]={ "LOVE" }; |
引用:
char c[5]={ 'L','O','V','E','/0' }; |
引用:
char c[]={ "I love China" }; |
引用:
char c[]="I love China"; |
引用:
char c[]='I'; |
引用:
char str[4][8]={ "father","mother","brother","sister" }; |