c语言-这段代码怎么有一个错误

来源:百度知道 编辑:UC知道 时间:2024/06/12 23:43:55
#include <stdio.h>
#include <string.h>
void main(){
printf("%d\n",strlen("ab\066\xad9"));
}
把这段代码输入到编译器怎么会有一个错误,请高手帮忙

ab\066\xad9
你是什么意思
这里的\066 \xad 都有2种解释。。
编译器会自动认为这2个是转义字符
要么就换成对应的字符

我觉得 真正算问题的是 void main()
又一个void main()
int main() 这样写难道很为难吗?
ab\066\xad9
这个也有点问题 \xad9会被当作一个字符 但这个字符本身又没有意义 不会显示的
所以一共4个字符(不算\'0')

感觉你思路有点儿奇怪
printf("%d\n",strlen("ab\066\xad9"));

写成下面的试试:
int len=strlen("ab\066\xad9")
printf("%d\n",len);

把错误提示贴上来,大家容易找问题。

ab\066\xad9要改成
ab\\066\\xad9

要不然编译器会以为你那个\0和\x是转义符

学习了1楼
我差不多都忘了