字符指针与字符串

在C语言中,我们可以利用字符指针来表示和操作字符串。

1. 字符串与指针

字符串本质上是由字符数组构成的,而字符数组的名称本身就是一个指向数组首元素(即第一个字符)的指针。因此,我们可以定义一个字符指针,并将字符串的首地址赋给它,从而实现使用指针操作字符串的目的。

2. 指针表示法的优势

使用指针表示字符串相较于数组表示,在某些情况下更加灵活和高效。例如,我们可以方便地使用指针遍历字符串、修改字符串内容等。

3. 代码示例

以下代码演示了如何定义一个指向字符串的字符指针变量,并使用 printf 函数输出字符串内容:

#include 

int main() {
  char *string = " I love China! "; 
  printf("%s
", string); 
  return 0;
}
stdio.h>

4. 两种访问方式

由于可以使用数组或指针来表示字符串,因此对字符串中字符的访问既可以使用下标法,也可以使用指针法。

例如,访问字符串 " I love China! " 中的第3个字符 ('l'),可以使用以下两种方式:

  • 下标法:string[2]
  • 指针法:*(string + 2)

两种方式是等效的。

5. 字符指针的定义

定义指向字符串的字符指针变量的语法如下:

char *指针变量名 = "字符串";

例如,char *string = " I love China! "; 就定义了一个名为 string 的字符指针,并将其指向了字符串 " I love China! " 的首地址。