char str[6] = {'h','e','l','l','o'}可以讲它当做字符串吗?

char str[6] = {'h','e','l','l','o'}可以讲它当做字符串吗?当省略对数组长度声明时,必须人为地在数组的初始化列表中添加'\0',才能将其作为字符串来使用,那声明了长度就可以不加'\0'了吗?
最新回答
剩余旳滚!

2024-04-18 07:43:44

不是声明了长度就是字符串,而是str[]数组在程序初始化时,你没有给定初始值,一般默认初始化为0(这个也跟编译器有关,初始值不一定是0),为了保持严谨,建议你最好自己给定初始化值。
纯家小可爱

2024-04-18 03:31:13

char str[]="I am student";
char str[30]="I am student";
可以这么初始化的。这么初始化后系统自动加'\0'。 这个东西系统自动完成的,不用你去考虑。另外用字符数组的时候数组元素的长度尽量大于实际长度。不知奥输入多少的时候尽量30个或50个元素的去定义。以免系统出现一些异常。
输出的时候printf("%s\n",str);或者puts(str)就可以了。
泪了

2024-04-18 06:59:28

楼上说的都有道理,但是没解释出本质区别。区别就在于两个定义中str的类型不同。 第一个,在 char * str; 中,明显str的类型是char*。这没什么特殊的,只是一个简单的char指针。