',其ASCII码"og:type" content="webpage">',其ASCII码" /> ',其ASCII码"> 系统在储存字符串常量时,为什么要在结尾添加一个结束标记?_IT百科_内存溢出

阅读 6

系统在储存字符串常量时,为什么要在结尾添加一个结束标记?,第1张

任何一个字符串,都要一个结束

标记。如果没结束标记,那么后面的那些没定义

的量可能是乱码,但是乱码不是结束,系统会认为他是字符串的一部分,那么在输出或者调用的时候,可能会多输出东西甚至出错。

空格处填上'\0',其ASCII码的值为0,这是字符串结束符。

以下内容摘自网络。

对字符数组,有以下几种定义方法:

1)char str[]="12345"

或给字符串加上大括号:char str[]={"12345"}

这种方法定义时,系统会自动在字符串的末尾加上字符串结束符,即 ‘\0’,

2)char str[10]={'1','2','3','4','5'}

这种方法定义时,系统会自动从未初始化的元素开始,将之后的元素赋为\0,如上面的数组str中的元素实际上是:'1','2','3','4','5','\0','\0','\0','\0','\0'

3)char str[]={'1','2','3','4','5'}

这种方法定义时,系统不会自动在字符串的末尾加上字符串结束符

此时用sizeof()函数可以正确求出其所占的内存大小;但用strlen()函数不能正确求出其长度,因为strlen是通过\0判断字符串结束的。


所以,采用该方法定义时,一般人为地加上\0,即char str[]={'1','2','3','4','5', '\0'}

欢迎分享,转载请注明来源:

内存溢出

原文地址:

http://outofmemory.cn/bake/11771845.html
系统
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
objectives objectives 一级用户组
群晖download station怎么添加国内的bt资源搜索引擎
上一篇
2023-05-18
我的新手请问各位前辈ASP程序的网站单页如何制作呢??
2023-05-18

发表评论
请登录后评论... 登录
提交

    评论列表(0条)
保存
{label} {label}