C语言中!='\0' 是什么意思

结束的意思吗?当char=\0..是的话是什么结束`举个例好吗

!='\0'.就是运行到字符串结尾时结束。

!的意思是非,亦可以理解成不。‘\0’是字符串的结束符号,由编译器自动加上。

比如说,把一个字符串赋值给数组:u8 str1[]={"cxjr.21ic.org"};实际上数组str1在内存中的实际存放情况为: c x j r . 2 1 i c . o r g '\0' 这后面的'\0'是由C编译系统自动加上的。

所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。 把字符数组str1中的字符串拷贝到字符数组str2中。串结束标志'\0'也一同拷贝。 


但是……也有一些例外情况发生。比如,当数组长度不够。假设我们指定了数组长度,如:u8 str1[13]={"cxjr.21ic.org"};由于字符组str1的长度为13,所以后面的信息会丢失,即'\0'丢失。

另外,如果在给数组赋值时,把每个字符单独用引号括起来。也会丢失'\0'。如:u8 str1[]={'c','x','j','r','.','2','1','i','c','.','o','r','g'};如果希望数组以'\0'结束,则要么写成:u8 str1[]={"cxjr.21ic.org"};要么写成(人工添加'\0'):u8 str1[]={'c','x','j','r','.','2','1','i','c','.','o','r','g','\0'};要么写成(故意给数组预留一个空位):u8 str1[14]={'c','x','j','r','.','2','1','i','c','.','o','r','g'};。

扩展资料:

C语言书写规则:一个说明或一个语句占一行;用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行;低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。

参考资料:

百度百科-C语言

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

在C语言中,!='\0' 是没有结束的意思。

其中,!=是关系运算号,\0(空字符)是字符串的结束码。

例如:

char s[] = "10";

printf("%s\n", s);

printf("s[1]:%d\n", s[1]);

printf("s[2]:%d\n", s[2]);

printf("s[1]:%c\n", s[1]);

printf("s[2]:%c\n", s[2]);

char u[] = {"hello"};

cout << sizeof(u) / sizeof(*u) << endl;   

char v[] = "hello";

cout << sizeof(v) / sizeof(*v) << endl;

打印结果如下图:

扩展资料:

在c语言中,运算符总共包括以下十类:

1、算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2、关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3、逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4、位操作运算符

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5、赋值运算符

用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6、条件运算符

这是一个三目运算符,用于条件求值(?:)。

7、逗号运算符

用于把若干表达式组合成一个表达式(,)。

8、指针运算符

用于取内容(*)和取地址(&)二种运算。

9、求字节数运算符

用于计算数据类型所占的字节数(sizeof)。

10、特殊运算符

有括号(),下标[],成员(→,.)等几种。

参考资料:c语言运算符号_百度百科

本回答被网友采纳
第2个回答  2018-10-13

!='\0' 是没有结束的意思。\0(空字符)是字符串的结束码。例如:在求字符串长度时,有一句是while (ch[i++]!='\0')

当字符ch[i++]不等于结束符'\0'时.字符串最后都会有一个结束符,例如,
char a[100];
scanf("%s",a);
你输入字符串china之后,那么字符串数组中
a[0]=='c',a[1]=='h'.a[5]=='a' a[6]=='\0'

扩展资料:

\0代表字符数串的结束标志,也就是字符数组的最后一位加上的'\0',\0的ASCII码为0,也就是空字符,上面的就是从字符数组的开始读取,直到最后字符串结束标志'\0'。

参考资料:ASCII百度百科

本回答被网友采纳
第3个回答  2011-01-18
字符串都是以'\0'结束的,如
char str[6]="Hello";
而在内存中则是"Hello\0"
即你申请了6个空间,但只能用5个,最后一个用来放'\0'。表示字符串结束。
例如下面一个查找str末尾的程序
while(*str != '\0')
{
str++;
}
有时也可以把'\0'直接放在字符串末尾,用来表示该字符串结束。如:
char str[10];
for(i=0;i<5;i++){
*str=(char)getchar();
str++;
}
str='\0';
希望对你有用本回答被提问者采纳
第4个回答  2011-01-18
!的意思是非,亦可以理解成不。‘\0’是字符串的结束符号,由编译器自动加上。!='\0'.就是运行到字符串结尾时结束。一般用在循环之中。比如
#include<stdio.h>
main()
{char a[10]="abcder";
int i=0;
while(a[i]!='\0')
{printf("%c",a[i]);
i++;
}
}
相似回答