C语言字符串基本介绍

示例

在C语言中,字符串是由空字符('\ 0')终止的字符序列。

我们可以使用字符串文字创建字符串,字符串文字是由双引号引起来的字符序列;例如,使用字符串literal "hello world"。字符串文字会自动以空值结尾。

我们可以使用几种方法创建字符串。例如,我们可以声明achar *并将其初始化以指向字符串的第一个字符:

char * string = "hello world";

当char *如上所述将a初始化为字符串常量时,通常将字符串本身分配在只读数据中;string是指向数组第一个元素(即character)的指针'h'。

由于字符串文字是在只读存储器中分配的,因此它是不可修改的1。任何修改它的尝试都会导致不确定的行为,因此最好添加const这样的编译时错误

char const * string = "hello world";

它有类似的效果2

char const string_arr[] = "hello world";

要创建可修改的字符串,可以声明一个字符数组并使用字符串文字初始化其内容,如下所示:

char modifiable_string[] = "hello world";

这等效于以下内容:

char modifiable_string[] = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '\0'};

由于第二个版本使用大括号括起来的初始化程序,因此除非'\0'字符通常明确地作为字符的最后一个元素包含在字符数组中,否则字符串不会自动以null终止。


1不可修改表示不能修改字符串文字中的字符,但请记住,string可以修改指针(可以指向其他位置,也可以递增或递减)。

2在不能修改两个字符串的字符的意义上,两个字符串具有相似的效果。应该注意的string是char,它是一个指向L的指针,并且它是可修改的L值,因此当数组string_arr是不可修改的L值时,它可以被递增或指向其他位置,因此无法对其进行修改。

以上是 C语言字符串基本介绍 的全部内容, 来源链接: utcz.com/z/326224.html

回到顶部