字符串

字符串

字符串指针 ^89afed 字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以改地址为首的一块连续内存中,并以\0作为字符串的结束。 char *str = "Hello, World!" 可以通过printf函数打印出字符串指针的内容: printf("%s\n", s

字符串指针

^89afed

字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以改地址为首的一块连续内存中,并以\0作为字符串的结束。

char *str = "Hello, World!"

可以通过printf函数打印出字符串指针的内容:

printf("%s\n", str);

字符串指针创建顺序:

  1. 分配内存给字符串指针
  2. 分配内存给字符串
  3. 将字符串首地址赋值给字符串指针

*str仅指向字符串的第一个地址,str++可以将字符串的下一个地址赋值给字符串指针。

用指针指向字符串:

char *pStr = str;

同样可以调用printf函数打印字符串:

printf("%s\n", pStr);

printf函数传入字符串指针的首地址,便能打印出整个字符串,是%s实现的功能。
%s格式说明符告诉printf从该地址开始读取,一直读取到\0为止。


字符串数组

字符串数组是由若干个数组元素组成,它可以存放整个字符串。
在C语言中,将字符串作为字符数组来处理(C++中不是)。

初始化字符串数组:

char str[] = {"Hello, World!"};

也可以省略花括号:

char str[] = "Hello, World";

注意:以上字符串数组的整体赋值只能在数组初始化时使用,若重新赋值将会报错。


字符串指针数组

示例代码

char *str[] = {"Hello", "World", "Linux"};

str[0]是字符串"Hello"的首地址。
str[0]+1是字符串"Hello"的第二个字符"e"的地址。
str[1]是字符串"World"的首地址。

LICENSED UNDER CC BY-NC-SA 4.0
Comment