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