尝试分析下以下代码的输出结果。
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char index = 1;
char c_nums[6] = {'A', '0', '1', '2', '3', '4'};
int i_nums[6] = {65, 0, 1, 2, 3, 4};
char c_twos[3][6];
int i_twos[3][6];
memcpy(c_twos[index], c_nums, sizeof(char)*6);
memcpy(i_twos[index], i_nums, sizeof(int)*6);
printf(" c_twos[%d] char printf as char = %c,%c,%c,%c,%c,%c\n",
index, c_twos[index][0], c_twos[index][1], c_twos[index][2],
c_twos[index][3], c_twos[index][4], c_twos[index][5]);
printf(" i_twos[%d] int printf as int = %d,%d,%d,%d,%d,%d\n",
index, i_twos[index][0], i_twos[index][1], i_twos[index][2],
i_twos[index][3], i_twos[index][4], i_twos[index][5]);
printf(" c_twos[%d] char printf as int = %d,%d,%d,%d,%d,%d\n",
index, c_twos[index][0], c_twos[index][1], c_twos[index][2],
c_twos[index][3], c_twos[index][4], c_twos[index][5]);
printf(" i_twos[%d] int printf as char = %c,%c,%c,%c,%c,%c\n",
index, i_twos[index][0], i_twos[index][1], i_twos[index][2],
i_twos[index][3], i_twos[index][4], i_twos[index][5]);
return 0;
}
运行结果
原因请参考下面的表格: