字符串指针
^89afed
字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以改地址为首的一块连续内存中,并以\0
作为字符串的结束。
char *str = "Hello, World!"
可以通过printf
函数打印出字符串指针的内容:
printf("%s\n", str);
字符串指针创建顺序:
- 分配内存给字符串指针
- 分配内存给字符串
- 将字符串首地址赋值给字符串指针
*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"
的首地址。