字符数组
char a[5];//定义一个包含5个字符的字符数组
基础:
1.在C语言中引用一个单个字符时,用单引号''括起来
char a[1] = {'a'};
2.定义数组的同时初始化,则可以省略定义时[ ]中的长度。
char a[] = {'a', 'b', 'c', 'd', 'e'};//定义并初始化一个含有5个元素的字符数组
注:C语言编译器会自动推论其长度,推论依据是初始化式中初始化元素的个数,由此可知,省略 [ ] 中数组元素的个数只是一种情况,那就是后面的初始化式必须为完全初始化。
字符串数组
char a[5] = "abcde";//字符串数组初始化
1.在C语言中引用一个字符串数组时,应该用“”括起来,例如:“abcde”
注:“abcde”其实是6个字符,分别是'a' 'b' 'c' 'd' 'e' '\0'
'\0' 这个字符时ASCII码表中的第一个字符,他的编码值是0,对应的字符是空字符(不可见字符,在屏幕上看不见,无法显示),一般要用转义字符方式来显示,例如:'\n'是回车符, '\t'表示Tab, '\0'是空字符。
'\0'是C语言中定义的字符串的结尾标志。所以当C语言程序中用"abced"这种方式去初始化时,编译器会自动在字符'e'后面加 一个'\0',于是变成了6个字符。
例子:
char a[5];//定义一个含有5个元素的字符数组,但是初始化其元素,则只知道里面有5个元素,而元素到底是什么是随机的。
char a[5] = {'a', 'b', 'c', 'd', 'e'};//定义并初始化一个含有5个元素的字符数组,元素明确。
char a[] = {'a', 'b', 'c', 'd', 'e'};//虽然没有标明几个元素,但是通过后面的元素可以判断出来有几个,与上面的效果一样。
char a[];//错误,编译器无法推论出数组的长度。
char a[] = "abcde";//字符串数组初始化,含有6个数组。