在main函数中初始化字符数组,字符数组中的值全是'\0'么。 下面是测试代码:
#include <iostream>
using namespace std;
void check(const char name, const char *arr, const int size)
{
for (int i = 0; i < size; i++)
{
if(arr[i] != '\0')
{
cout << name << " not all \\0" << endl;
return;
}
}
}
int main()
{
char a[10];
char b[10];
char *c = new char[10];
char *d = new char[10];
check('a', a, 10);
check('b', b, 10);
check('c', c, 10);
check('d', d, 10);
return 0;
}
使用了一个函数来检测数组,如果数组中有元素不是'\0'的话,则输出一行语句, 并返回。这里用了四个数组,来确何结果的准确性。还可以多次实验来证明。
下面是实验结果:
我们发现,a中并不全是'\0',而b,c,d中全是'\0'。即用new分配的全是'\0',而不用new分配的不一定。