
3个回答
展开全部
以字符串字面量(配对的双引号之间的字符串)来表示字符串时,字面量本身末尾隐含了'\0'。用字符串字面量来声明一个字符指针或数组时,最后会以'\0'结尾,因此是有效的字符串。
此外,自动变量只要在声明同时初始化,且初始化部分没有完全填满声明的空间时,剩余部分都会被填充0。由于(char)0等于'\0',对于char数组而言,会以一连串的'\0'结尾,其中第一个'\0'和之前的部分就是一个有效的字符串。静态/全局变量定义同时如果没有显式初始化,则会自动初始化,同样是填充0的方式。
至于scanf、gets等以字符串方式读输入流的函数,都会在末尾自动添加'\0'以保证读入的字符串有效。不过这体现的是运行期赋值语义,和编译期确定的初始化无关。
====
[原创回答团]
此外,自动变量只要在声明同时初始化,且初始化部分没有完全填满声明的空间时,剩余部分都会被填充0。由于(char)0等于'\0',对于char数组而言,会以一连串的'\0'结尾,其中第一个'\0'和之前的部分就是一个有效的字符串。静态/全局变量定义同时如果没有显式初始化,则会自动初始化,同样是填充0的方式。
至于scanf、gets等以字符串方式读输入流的函数,都会在末尾自动添加'\0'以保证读入的字符串有效。不过这体现的是运行期赋值语义,和编译期确定的初始化无关。
====
[原创回答团]
参考资料: 原创
本回答被提问者采纳

你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c语言中的字符串是按数组来处理的,当你输入一个字符串的敲回车的时候就自动给字符串增加了一个‘\0'结束标记。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询