如
char str[100] = "hello world"
就是一种字符串的表示方法。
另外,在C语言中,约定用字符数组表示字符串时,以'\0'为字符串结尾,即ascii码0。
C语言中没有字符串类型的变量。他只有字符变量类型char,所以字符串用变通的方式来表示。
第一是字符数组来表示字符串。用下面的语句声明:
char a[10]
C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符'\0',而字符数组不需要。
如刚才声明的a[10]是一个含有10个元素的字符数组,它也能存放含有9个元素的字符串。
第二种方式是直接用指针。语句是:
char *a
用指针声明的字符数组,大多数功能与字符数组表示字符串相同。但也有以下两点不同,一是储存位置不同,用字符数组表示时,字符串是存放在储存器的变量区域内;而用指针表示的字符数组是存储在储存器的常量区内;第二个区别是字符数组的字符串可以更改,而指针表示的字符串不能更改。
有关字符串的赋值方法,如何引用,请参考相关书籍。
有什么问题请留言。
C语言中的字符串实际上就是char类型的一维数组。按照约定,C的字符串是以字符串结束标志\0
(或null)结尾的。null字符就是所有位均为
0
的字符。因此,它的十进制值是
0
。由于字符串的处理具有它自己的方式,因此我们把它当作一个独立的主题。把字符串看成是长度可变,由\
0
定界、但最大长度不超过字符串本身长度的这种观点是非常有用的。字符串的长度必须包含存储结尾的\
0
字符所需要的存储空间。和所有数组一样,程序员应该确保字符串的边界未超出。字符串常量由一对双引号所包围。例如,"abc"是一个长度为4的字符数组,其中最后一个元素是结尾字符\
0
。注意,字符串常量和字符常量是不同的概念。例如,'a'
和
"a"
并不相同。后者拥有两个元素,一个是'a'
,另一个是'\
0
'。字符串常量和数组名一样,也是被编译器当成指针来对待的。它的值就是字符串的基地址。