C语言中‘\0’代表什么意思?

C语言中‘\0’代表什么意思?除了表示字符串结束,还有什么作用?

'\0'是判定字符数组结束的标识,表示这串字符到结尾了;或'\0'是字符串的结束符,任何字符串之后都会自动加上'\0'。

注意:在字符数组中’\0’是占一个位置的。

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

扩展资料:

C语言的特点:

1、具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

2、丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

3、丰富的运算符

c语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。

参考资料来源:百度百科-c语言

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

'\0' 是字符串的结束符,任何字符串之后都会自动加上'\0'。如果字符串末尾少了‘\0’转义字符,则其在输出时可能会出现乱码问题。

‘\0’转义字符在ASCII表中并不表示阿拉伯数字0,阿拉伯数字0的ASCII码为48,‘\0’转义字符的ASCII码值为0,它表示的是ASCII控制字符中空字符的含义

具体来说,‘\0’是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间,而一个汉字一般用两个字节表示,且c/c++中如一个数组cha[5],有5个变量,分别是 cha[0] , cha[1] , cha[2] , cha[3] , cha[4]。

所以cha[5]可以放4个字母(数组的长度必须比字符串的元素个数多1,用以存放字符串结束标志'\0')或者放2个汉字(1个汉字占2个字节,1个字母占一个字节),cha[5]占5个字节内存空间。如果字符串末尾少了‘\0’转义字符,则其在输出时可能会出现乱码问题。

扩展资料

字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的。

如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。

设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

参考资料来源:百度百科—字符串

本回答被网友采纳
第2个回答  2019-06-14

‘\0’是判定字符数组结束的标识,表示这串字符到结尾了;或'\0'是字符串的结束符,任何字符串之后都会自动加上'\0'。

注意:在字符数组中’\0’是占一个位置的。

例如定义charc[6]=“hello”,而在内存中字符数组c则是"hello\0";即’\0’在数组中占有空间却不被看到;所以如果一个长度为10的字符串要放在字符数组里的话就应该把字符数组的长度定义为11;

代码示例:

#include<stdio.h>

int main()

{

char s[6]="hello";

int i=0;

while(s[i]!='\0')

{

printf("%c ",s[i]);

i++;

}

printf("\n");

}

输出结果:

h e l l o

Press any key to continue

扩展资料

分析:

'\0'的ASCII是0

例如:

char sText[5];

sText[0]='a';

sText[1]='a';

sText[2]='a';

sText[3]='a';

sText[4]='\0';

cout<<sText<<endl; //这样输出就是4个a

// 如果数组的第五个元素即:

sText[4]='a';

cout<<sText<<endl; //这样输出就是5个a和一堆乱码,甚至发生系统错误,因为该字符串没有字符串结尾符。

\0是C++中字符串的结尾标志,存储在字符串的结尾。比如charcha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为'\0',它虽然不计入串长,但要占内存空间,而一个汉字一般用两个字节表示,

且c/c++中如一个数组cha[5],有5个变量,分别是cha[0],cha[1],cha[2],cha[3],cha[4],

所以cha[5]可以放4个字母(数组的长度必须比字符串的元素个数多1,用以存放字符串结束标志'\0')或者放2个汉字(1个汉字占2个字节,1个字母占一个字节),cha[5]占5个字节内存空间。

参考资料:

百度百科—— \0

本回答被网友采纳
第3个回答  推荐于2017-12-15
。。。 '\0'的意思是 ASCII 为 0 的字符。 它所的意义是“字符串结束符”。 比如,一个字符串 "Hello" ,它是由字符 'H','e','l','l','o','\0' 6 个字符在内存中连续存放的。程序在见到第一个 '\0' 时就会认为该字符串结束了。 楼上的楼上所说的 “NULL” 只是一个用来表示空指针的宏定义,跟这个没有太大关系。虽然 (NULL == '\0') 这个表达式返回的是“真”,但这两个东西完全不是一个意义。本回答被提问者采纳
第4个回答  2011-11-26
按我的理解,C语言中单独的[ ]什么也不是。不是中括号,也不是其他的。。。组合使用时可以定义数组,如int a[10];表示定义一个10个元素的数组,a[3]=5;表示第三个数组元素的值是5,int a[2][2];表示定义一个二维数组。

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