Я новый программист на С ++ и столкнулся с поведением массива символов, которое не могу объяснить. Для меня это просто учебное упражнение.
Я понимаю, почему kchar и kchar1 отображаются так, как они отображаются для значений j, равных от 0 до 5, но не могу понять, почему k1 отображает дополнительные символы, когда j = 6 и 7 Я также не могу объяснить, почему kchar отображает значение 7 для kchar [0], когда j = 7.
Заранее спасибо.
Ken_SF
выход наблюдается для j = 6 и 7:
j = 6 k: '10111010' k1: '012345610111010'
j = 7 k: '70111011' k1: '012345670111011'
конечный вывод, код показан ниже:
#include <iostream>
#include <windows.h>
using namespace std;
int main(){
char buf[] = "101110111101110111011110110111011101101110111011101110111110111011101110111011011";
char kchar[] = "00000000";//interesting kchar[7]; gives weird results when you display kchar for many iterations
char kchar1[7];
for (int j = 0 ; j < 8 ; j++){
kchar[j] = buf[j];
kchar1[j] = j + '0';
cout << "j = " << j << endl;
cout << "k : '" << kchar << "'" << endl;
cout << "k1: '" << kchar1 << "'" << endl;
cout << endl;
}
system("pause");
return 0;
}