C语言数组加入“\0”的问题

您所在的位置:网站首页 c语言数组赋值为0 C语言数组加入“\0”的问题

C语言数组加入“\0”的问题

2023-12-21 16:47| 来源: 网络整理| 查看: 265

对于字符数组后面是否要加‘\0’,有以下几种情况:

第一种: char str[10] = {'h','e','l','l','o'};

如果大括号中的字符个数小于字符数组的长度,则把大括号中的字符赋给数组中前面的元素,其余元素自动赋值为空字符(即‘\0’)。

第二种:char str[5] = {'h','e','l','l','o'};

对于大括号中的字符个数和数组长度相同,系统不会自动添加'\0'。对于这种赋值方式,需要手动添加‘\0’;

即:char str[6] = {'h','e','l','l','o', '\0'};

第三种:char str[] = "hello";

系统会自动在后面添加‘\0’;

对于字符串,系统会自动在其后面加‘\0’,因此 const char str[5] = "hello",在VS环境下会提示错误:const char[6] 不能赋值给 const char[5],但是在GCC不报错;建议最好不要这样写,以及对字符串定义时采用第三种方式,或者使用 char *str = "hello";

分析:strlen 是以‘\0’为结束依据,因此会出现19 和21;使用sizeof()会将‘\0’也当做一个字符并计入结果,而strlen()不会计入‘\0’。

其中在C语言中,字符串是用字符数组来存储的。

注意:在实际编程中,在定义字符数组时应估计实际字符串的长度,保证数组长度始终大于字符串的长度。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3