' 是表示字符串结束的特殊字符,也叫做字符串结束符。因此,在使用 '' 表示字符串时,需要先将字符串中的所有字符按照顺序排列好,并在最后一个字符的后面添加 '&"og:type" content="webpage">' 是表示字符串结束的特殊字符,也叫做字符串结束符。因此,在使用 '' 表示字符串时,需要先将字符串中的所有字符按照顺序排列好,并在最后一个字符的后面添加 '&" /> ' 是表示字符串结束的特殊字符,也叫做字符串结束符。因此,在使用 '' 表示字符串时,需要先将字符串中的所有字符按照顺序排列好,并在最后一个字符的后面添加 '&"> c语言中''前面应该填什么?_安全_内存溢出
登录
安全

安全

c语言中''前面应该填什么?,第1张阅读 46

在 C 语言中,'\0' 是表示
字符


结束的特殊
字符

,也叫做字符串结束符。因此,在使用 '\0' 表示字符串时,需要先将字符串中的所有字符按照顺序排列好,并在最后一个字符的后面添加 '\0'。例如,如果要定义一个包含字符串 "Hello, world!" 的字符数组,可以这样写:```cchar str[] = "Hello, world!";```
在这个字符数组中,编译器会自动在字符串的末尾加上一个 '\0' 字符,以表示字符串的结束。因此,定义字符数组时并不需要手动添加 '\0' 字符。
s1

里面


的零是 '0' 字符 0, ASCII码值是 48
s2里面的 '\0' ASCII码值是0
char c=0 <==> 等价于 char c='\0';
因为 当字符型作运算的时候,是会转换成 ASCII 码来运算的,所以 c=0 赋值的时候是将ASCII值 0 赋给了 c
而如果 c='0' 则是将 ASCII 值 48 赋给 c
所谓的 strlen() 其实就是下面一段代码:
int strlen(char p)
{
int len=0;

while(p++) ++len;
return(len);
}

这个是运行时生成,你那源串是随机串,里面很可能没有结束 0(你可以用 for 循环输出其中的值看看),这样上面的代码自然就会读内存越界,已经在 strlen() 函数里面出现错误(函数输入错误导致运行错误)。至于 sizeof 没有问题,实际上是因为这个是个 *** 作符,而不是函数,它的值是在编译时生成(一次性),在生成可执行文件中只存在对应的数值,而且它的值只是依据你的变量定义,而不管其它(里面的值是什么,正常异常等),而不是象 strlen() 是在运行时再运转得具体值(可能多次运行)。想得到数组长度应该用sizeof字符串长度用strlen

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

内存溢出
里面
数组
微信扫一扫 支付宝扫一扫 打赏
微信扫一扫
支付宝扫一扫
上一篇
下一篇
2023-07-24

发表评论
请登录后评论...
登录
后才能评论

提交
评论列表(0条)
物联网云平台

2023-1-31

兑美元
国务院国资委
章鱼小丸子
{label} {label}保存{label} {label} {label} {label}