1613551 发表于 2022-8-16 09:00:29

关于strlen的问题

这段代码的结果是3,请问是怎么算的啊,\t和\r分别占用一个字符   后面的\\是注释吗?

#include <stdio.h>
#include <string.h>
int main(void)
{
char c[] = {"\t\r\\\0will\n"};
printf("%d", strlen(c));
return 0;
}

wp231957 发表于 2022-8-16 09:11:38

一个\t\r\\遇到\0就结束了

1613551 发表于 2022-8-16 09:27:53

wp231957 发表于 2022-8-16 09:11
一个\t\r\\遇到\0就结束了

懂了,那请问这里的\\是什么意思啊

wp231957 发表于 2022-8-16 09:33:14

1613551 发表于 2022-8-16 09:27
懂了,那请问这里的\\是什么意思啊

前杠是转义,后面的杠是被转义
因为杠本身是特殊字符,是需要转义

1613551 发表于 2022-8-16 09:49:21

wp231957 发表于 2022-8-16 09:33
前杠是转义,后面的杠是被转义
因为杠本身是特殊字符,是需要转义

{:10_266:}没懂?转义和被转义对语句本身产生了什么影响

1613551 发表于 2022-8-16 09:50:54

wp231957 发表于 2022-8-16 09:33
前杠是转义,后面的杠是被转义
因为杠本身是特殊字符,是需要转义

我只知道转义字符是一种被赋予了特殊意思的字符,但是转义本身的意思我不理解

wp231957 发表于 2022-8-16 09:52:22

1613551 发表于 2022-8-16 09:49
没懂?转义和被转义对语句本身产生了什么影响

c语言中斜杠是转义符,这没啥问题吧?
如果要输出斜杠本身就需要双斜杠

1613551 发表于 2022-8-16 09:57:34

wp231957 发表于 2022-8-16 09:52
c语言中斜杠是转义符,这没啥问题吧?
如果要输出斜杠本身就需要双斜杠

懂了懂了
页: [1]
查看完整版本: 关于strlen的问题