我最近一直在审核我的C ++。但是我遇到了关于打印char数组的难题。代码如下:
int n = 5;
char *array1 = new char[n];
for (unsigned int i = 0; i < n - 1; i++)
array1[i] = (char)i;
cout << array1 << endl;
cout << array1[3] << endl;
cout << *array1 << endl;
三条cout线都不起作用。谁能告诉我为什么?
答案 0 :(得分:1)
array1[0] == 0
。 cout << array1
将array1
解释为指向NUL终止字符串的指针,并且因为第一个字符实际上是NUL,所以该字符串为空。
cout << array1[3]
会打印一个带有ASCII代码3的字符。它是一个不可打印的字符,肉眼看不到。不确定你期望在那里看到什么输出。
答案 1 :(得分:0)
作为一个单独的答案,您似乎正在尝试获取具有以下内容的字符串:array =“1234 ....(n-1)”
尝试:
for (int i = 0; i<(n-1); i++)
array1[i] = (char)i - '0';