
'\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。在数值类型里就代表数字0。
补充:
这个你要去学下基础的,数值类型存储时,最高位决定正负号,其他位都为0可不就是0了么?
'\0'是转译字符,意思是告诉程序,这不是字符0,我要的是数字0的2进制直接放进来,因为acsii码的0可不是0000000001 “\0”在c语言中代表“
字符串
结束符”。“\0”的ASCII码为“0”,也就是空字符;字符串总是以“\0”作为串的结束符;因此当把一个字符串存入一个数组时,也把结束符“\0”存入数组,并以此作为该字符串是否结束的标志。
c语言中'\0'是字符串的结束符,任何字符串之后都会自动加上'\0'。如果字符串末尾少了‘\0’转义字符,则其在输出时可能会出现乱码问题。这个'\0'是占一个位置的,所以如果一个长度为20的字符串要放在一个字符串数组里面的话,这个字符串数组长度至少为21。
具体来说,‘\0’是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间。'\0'是一个ASCII控制字符,是转义字符,代表空字符。因此当把一个字符串存入一个数组时,也把结束符“\0”存入数组,并以此作为该字符串是否结束的标志。字符'\0'可以直接用ASCII码0表示,0不管是几进制,都是0(十进制),也就是0x00(十六进制)。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
c语言字符串的结束符是 '\0' 也就是ASCII 码 0
不知道你注意到没有,我没有加 Linux,是因为这时 C 语言规定,跟 *** 作系统无关,在 Windows 下也是一样EOF(End Of File)是C语言中的文件结束标志符。当C语言输入
函数
获取到文件结尾标志时,会通过返回值的方式体现该值。
所以要以输入EOF为结束,就需要判断输入函数的返回值。
EOF定义在stdioh中,与常用的输入函数相同,所以不需要额外引用头文件。
以下根据输入函数不同,分别说明EOF的判断。
1 getchar
getchar函数的功能是读入一个字符。适用于逐个字符输入的情况。
其返回值为int型,常见的做法是赋值给char型变量,但如果要检查EOF,则必须将返回值赋值给int型。代码:int c;
while(1)
{
c = getchar();//读入一个字符。
if(c == EOF)break;//如果遇到EOF则退出循环,即结束输入。}2 scanf
scanf是最常用的C语言输入,其作用为格式化输入,可以用来输入各种类型的变量值。以int型为例:int c, ret;
while(1)
{
ret = scanf("%d",&c);//读入一个整型值。
if(ret == EOF)break;//如果遇到EOF则退出循环,即结束输入。注意判断的是返回值,而不是读入的变量。}3 gets
gets作用是读入一行数据,存到字符数组中,并把读到的换行符转换为字符串结束符。
正常情况下其返回值为传入的指针,当遇到EOF时,其返回NULL(空指针)。所以用gets读入时可以这样判断:char s[100];
while(1)
{
if(gets(s) == NULL) break;// 当gets返回NULL时代表遇到EOF,结束输入。}
当输入为文件时,遇到文件结尾C语言可以自动识别EOF,但如果输入为命令行交互模式,那么需要手动输入EOF 在windows平台输入EOF的方法为,同时按下ctrl和z键。如果是unix/linux平台,则需要同时按下ctrl+d键。
函数返回可以用return,不用也可以,但是可能会导致程序异常,一般建议使用return。
return 表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方继续执行下去。但是如果是在主函数中碰到return语句,那么整个程序就会停止,退出程序的执行。
函数的返回值是由返回语句return实现的,函数执行的最后一个 *** 作就是返回,返回的意义是:
(1)子程序函数返回主调函数,宣告函数的一次执行结束,在调用期间所分配的变量单元被撤消;(2)送函数值到调用表达式中,当然这一点并不是必需的,因为有些函数有返回值,有些函数没有返回值。表示这个之后的字符都不是这个字符串的。
也就是说,整个字符串内容只是从开头到'\0'
比如:char
s[10]="123";
printf("%s",s);//是123
s[1]='\0';
printf("%s",s);//是1
另外,如果'\0'之后还有其他字符,则全部忽略,这是一种策略,c风格字符串就是这样。
原文地址:

