📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

定义字符型数组需要注意“\0”的重要性

创建时间2018-02-06最后修改2018-02-06原位置/程序员成长之旅/C语言/笔记/字数429
目录:程序员成长之旅/C语言/笔记

一般的,定义时要比需要的数据大至少1,否则会出现溢出 两种情况

情况一 字符串: 注意此地字符串系统会自动的加一个“\0”一般不需要手动添加 char Word[7]={"AnYing\0"}//“AnYing”为6个字符 但是一定要定位7,因为后面需要有“\0”来标识结束,所有相关函数是依靠“\0”来判断结尾位置的(例如strcpy,strcat,strcmp),若没有,会导致崩溃或者溢出。 情况二 字符: 字符系统不会自动添加“\0”需要自己手动添加 再次重复 很多函数依赖于结尾的“\0”必须手动添加“\0” char Word[7]={'A','n','Y','i','n','g','\n'}//意义同为“AnYing” 但是这是定义的字符,同样要至少比数据大1,并且系统不会自动添加“\0” 需要手动添加 )

x

1 情况一

字符串: 2 注意此地字符串系统会自动的加一个“\0”一般不需要手动添加 3 char

Word [ 7 ]

{ "AnYing\0" } //“AnYing”为6个字符 但是一定要定位7,因为后面需要有“\0”来标识结束,所有相关函数是依靠“\0”来判断结尾位置的(例如strcpy,strcat,strcmp),若没有,会导致崩溃或者溢出。 4 5 情况二

字符: 6 字符系统不会自动添加“\0”需要自己手动添加 7 再次重复

很多函数依赖于结尾的“\0”必须手动添加“\0” 8 char

Word [ 7 ]

{ 'A' , 'n' , 'Y' , 'i' , 'n' , 'g' , '\n' } //意义同为“AnYing” 但是这是定义的字符,同样要至少比数据大1,并且系统不会自动添加“\0” 需要手动添加