C语言中 \0 代表什么?

在以下代码中 \0 在其中代表什么? 整句代码表达什么含义?

for(i=0;(e=str[i])!='\0';i++)

\r表示回车到本行首行.\0为null,空字符


所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。


所有的转义字符和所对应的意义:


字符型常量编辑

字符型常量所表示的值是字符型变量所能包含的值。我们可以用ASCII表达式来表示一个字符型常量,或者用单引号内加反斜杠表示转义字符。

'A', '\x2f', '\013';

其中:\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。

注意:在Turbo C 2.0中,字符型常量表示数的范围是-128到127,除非你把它声明为unsigned,这样就是0到255。

上面我们见到的\x,\n,\a等等都是叫转义字符,它告诉编译器需要用特殊的方式进行处理。



转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。

比如,要显示小于号(<),就可以写 &lt; 或者 < 。

用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。

提示:实体名称(Entity)是区分大小写的。

备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。



作用

转义字符串(Escape
Sequence)也称字符实体(Character
Entity)。在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直
接当做文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。

其实所有编程语言,拥有转义字符的原因基本上是两点:一、使用转义字符来表示字符集中定义的字符,比如ASCll里面的控制字符及
回车换行等字符,这些字符都没有现成的文字代号。所以只能用转义字符来表示
。二、某一些特定的字符在编辑语言中被定义为特殊用途的字符。这些字符由于被定义为特殊用途,它们失去了原有的意义。比如说Html中,<被
HTML定义为标签的开始,所以当我们转入<时,HTML就会把它当作为开始,而不是当作一个<来看待。再如PHP
的双引号("),被PHP定义为字符串的外围标签,所以如果你在一对双引号里面,还想要使用双引号,只能使用转义字符了。不然PHP就会报错了。

从上面也可以看出转义无非是两种情况:1:将普通字符转为特殊用途,一般是编程语言中,用于表示不能直接显示的字
符,比如后退键,回车键,等。2:用来将特殊意义的字符转换回它原来的意义。一般用在正则表达式中。还有有些脚本语言是弱类型,有些语言比如html
并不是编程语言,而是标记语言,有些语言只有一种类型 比如shell 脚本语言,这些语言中字符串都不加引号” ” ,或者可以不加引号“
”,所以有时候需要转移字符说明某字符此时的身份是普通字符,而不是有特殊意义的元字符。

另外出于网站的安全。在数据写入数据库前,都会使用转义字符(函数)对一些敏感字符进行转义。这样做可以避免一些别有用心的人利用特殊符号的注入攻击。

  

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-09-12

'\0'的意思是 ASCII 码为 0 的字符,对应的字符是(Null),表示“字符串结束符”,是字符串结束的标志。

这句代码的意思是,把字符串str中的单个字符赋值给e,当字符串未到终止符时,i+1;当i指向字符串结束符时,循环结束。

字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0" 

比如 " BAIDU"在内存中所占字节为 B A I D U \0 六位。

    \0、'0'、"0"的区别。

    \0代表ASCII 码为0的空字符,是字符串结束的标志。

    ‘0’代表ASCII 码为48的字符,即数字0/

    "0"是字符串常量,字符串常量是由一对双引号括起的字符序列。例如:“CHINA”。

    什么是for循环?

    for ( [表达式 1]; [表达式 2 ]; [表达式3] )

    表达式1:一般为赋值表达式,给控制变量赋初值;

    表达式2:关系表达式或逻辑表达式,循环控制条件;

    表达式3:一般为赋值表达式,给控制变量增量或减量;

    for语句的三个表达式都是可以省略的,但分号";"绝对不能省略。for语句有以下几种格式:

    (1)for(; ;) 语句;

    (2)for(;表达式2;表达式3 ) 语句;

    (3)for(表达式1;表达式2;) 语句;

    (4)for(i=1,j = n; i < j; i ++,j - - ) 语句;

参考资料

谭浩强.c程序设计.清华大学出版社:清华大学出版社,2003

本回答被网友采纳
第2个回答  2012-03-02
\r表示回车,将当前的位置移到本行开头,要区别于\n,它表示换行,是把当前位置移到下一行开头。\0表示空字符,即空操作,通常位于一个语句末尾。注意,\0000也是这个意思。欢迎探讨更多c++问题。
第3个回答  2015-12-11
c语言中“\0”是空字符串。 是字符常量,NULL 字符,ASCII码数值0,用作字符串结尾符。
字符串长度是0, 占内存 2 字节。
第4个回答  2011-11-26
按我的理解,C语言中单独的[ ]什么也不是。不是中括号,也不是其他的。。。组合使用时可以定义数组,如int a[10];表示定义一个10个元素的数组,a[3]=5;表示第三个数组元素的值是5,int a[2][2];表示定义一个二维数组。

c语言中,无论是小括号、中括号、大括号,都用()的层数来表示。如(((2+3)*2+5)*3),从里到外依次为小括号到大括号。。。如果还有更多层数,再加括号就行了。
相似回答