之前学习C语言都是为了蒙混考试从来没有认真去学习过,现在大三了有了想为之奋斗的人所以也就慢慢地在提升自己的专业技能,开始把以前半懂不懂的知识进行梳理。所以这篇博客是关于字符串和一维字符型标题数组的。大家可浅浅读一读,如果有错误欢迎指出哈哈哈哈
C语言中规定字符串是以双引号括起来的一串字符,如"a"是一个字符串,you are beautiful也是一个字符串,并且我们将其称为字符串常量
字符串的存储方式在C语言中字符串常量会被隐含处理成一个以’ ’结尾的无名字符型一维数组,(这是区别一维字符型数组和字符串的标准,以串结束符’ ’结尾的一维字符数组可以视为字符串处理,否则不可。这就是本篇的精华)这个“无名字符型一维数组”就是一个没有正式名字的数组,C编译器会以字符串常量的形式给出每一个字符串的存储空间首地址。(我们可以理解成C编译器把字符串常量看成了一个一维字符数组的数组名。)看如下代码理解
char *sp,str[10]; //字符串常量在赋值过程中给出的是这个字符串在内存中所占的一串连续存储单元的首地址 str="Hello!";//不合法赋值,因为str是一个不可重新赋值的数组名 sp="Hello!"//合法赋值,因为sp存储的就是一个地址细说区别
字符数组可以有一维二维三维等,但只有一维字符数组在以串结束符’ ’结尾时可以当成字符串处理,否则可能出现异常情况。我们把可以当成字符串处理的一维字符型数组称为字符串变量
字符数组的赋值方式一 声明长度char str[10]={'s','t','r','i','n','g'};
char str[10]={'s','t','r','i','n','g',' '};//等效
| s | t | r | i | n | g |
|---|


