C语言存储字符串的方式
:
将字符串中每个字符的ASCLL码按先后顺序存储在一段连续的内存中,每个字符占一个字节,最后用空字符,即ASCLL码为0的字符结尾.
表示字符串的方式:
- 字符指针方式
- char *pstr = “hello”;//pstr保存字符串的首地址
- 不能通过pstr修改指向的字符串,例如:pstr[1]=‘E’
- 字符数组方式
- str[]={‘a’,‘b’,‘c’,‘\0’};//“abc”
- str[]= “abc”;
- 数组名即字符串首地址
- 可以用字面值初始化.也可以用{}初始化
- 用{}初始化需要手动显示注明结束符,否则就是一个数组
- 可以任意修改
#include <stdio.h>
int main(void) {
printf("%s\n","abcd\0");//%s:用于打印或者输入字符串
printf("%s\n","abcd");//书写上可以省略'/0',但是实际内存必须有
printf("%s\n","1234\0abc");//1234
printf("hello"" world\n");//等价于Printf("hello world\n");
//指针和字符串的那点事
char *p = "abc";//定义p指针指向字符串"abc"的首地址,abc所在的内存只能读不能改
int a = 1;
int b[20] = {
1,2,3,4,5,6,7};
int *p2 = b;
printf("%d\n",*p2);
int *p1 = &a;//指向a的地址
printf("%s\n",p);