c语言问题,为什么编译时出错?

#include<stdio.h>
#include<string.h>
main()
{ char c[]="\441";
printf("%d\n",strlen(c));
}

第1个回答  2013-02-21
编译系统在见到 ' \ ' 时会接着找他后面的字符,把它作为一个字符,所以"\441"进行编译会出现:
too big for character,就是441太大了,比如改成 " \44 "就OK了。嗯,转义字符在谭浩强 C 的48页,C++的24页。追问

谭浩强c 48页就只讲了\n这个转义字符

第2个回答  2013-02-21
\XXX后面XXX是八进制,表示转义字符,转义为ascii字符。\441中441装换成十进制的289,289明显是太大了。如果你在后面输入了单个超过7的数字,\将会失效。比如输入\989,989就会储存在数组的c[0],c[1],c[2]中,而不是装换为ascii值储存在c[0]中。如果你要统计字符,转义后变为一个。追问

289为什么太大了?

追答

289ascii码里面没有啊

追问

那它不会分为'\44'和'1'两个字符吗?'\44'总不会太大了吧

追答

你看下面这个表吧,\后面是寻三位
http://baike.baidu.com/view/73.htm

追问

哦 那如果要表示ascii为44的字符是不是要写成“\044”?如果是”\0441“,就是表示”\044“和”1"这两个字符了吧?

追答

嗯 ,你试试吧

本回答被提问者采纳
第3个回答  2013-02-21
#include<stdio.h>
#include<string.h>
void main()
{ char c[]="\441";
printf("%d\n",strlen(c));
}
第4个回答  2013-02-21
请去查书 转义符 \ 怎么用的..........追问

好像找不到,请问在谭浩强《c程序设计》的那一页?

第5个回答  2013-02-22
楼上各位讲解,受教受教!!!

c语言helloworld代码是对的,但编译错误?
这个从图示来看编译没有错误 使用devC++编译运行结果如下

为什么我的c语言编译不了,一编译就出错?
出现这种错误的原因主要是你定义了相同函数名字的函数,比方说在MAIN.C里面定义了delay()函数,然后在APP.C里面又定义一个delay()函数,则会出现这种警告或错误,将同名函数修改名字即可。_delay这个函数重定义了,说明这个函数名定义了两遍。检查一下,如果没有的不要把函数体(函数定义)放在头文件...

C语言中,为什么这样的代码编译时出错i undeclared(first use in this...
出现此问题的原因为:设置错误造成的。解决的方法和详细的操作步骤如下:1、首先,使用未声明的标识符“ p”的警告,表示此处存在无法识别的p,如下图所示,然后进入下一步。2、其次, p值可以直接找到。 p下有一个_,表示出现了问题,如下图所示,然后进入下一步。3、接着,完成上述步骤后,如...

c语言编译总是提示 1 error
首先你格式错了,一般都是这样 include<stdio.h> void main(){ 主程序 } 注意引号那些要在英文模式下输,象一楼的程序就是对的,其次这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\\VC98\\Bin”下面,你可以到相应的路径下找到这...

c语言编好后,编译时提醒Error spawning cl.exe,这什么意思啊?怎么办...
也有可能是路径设置错误,可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径。很多情况可能就一个盘符的不同(例如你的VC装在C,但是这些路径全部在D),改过来就OK...

用c语言编程序,为什么每次编译的时候告诉我出错的地方是花括号,每道...
有可能是花括号前的语句没有加英文格式的“分号”,所以报错~~

C语言中,为什么这样的代码编译时出错a undeclared(first use in this...
C语言中只允许在函数的最前面出现变量声明语句。你把int a=q;和int b=0;两个语句分别改成a=q;和b=0;,再在int q=12,……这一句的前面(或后面)增加一句int a,b;,可能就好了。其它语句没有发现错误。请试一下,如果还不能解决,请留言追问。

为什么C语言宏定义总是编译出错?
解答:若在编程时遇到C语言宏定义出错问题,首先应确保编译器设置无误。解决这类问题的一个有效方法是,将代码粘贴到在线IDE,如ideone,进行编译与运行,从而获取详细的错误信息。这样能更直观地定位问题所在。为提升问题解决效率,我有两点建议:一是遇到编程相关疑问,可尝试在专业论坛上寻求帮助,如stack...

为什么编译时出错invalid use of void expression?
因为无效使用void表达式。c++编译程序时出现error: invalid use of void expression,是因为有型的变量或者函数返回值。1、obj:是目标文件,源程序编译后的产物。2、pch:全称是PreCompiled Header,就是预先编译好的头文件。3、idb:文件保存的信息,使编译器在重新编译的时候只重编译最新改动过的函数和...

C语言编译出错
在编译VC++6.0是,出现 fatal error C1010: unexpected end of file while looking for precompiled header directive 问题详细解释:致命错误C1010,在寻找预编译指示头文件时,文件未预期结束。就是没有找到预编译指示信息的头文件。问题一般发生在:通过添加文件的方式,添加了一些cpp文件到一个MFC的...

相似回答