我正在尝试使用指针将二维数组视为一维数组(因为这是我理解的内存中的方式)。我以为我有它,然后我发现我只是添加到 'a' 的 ASCII 值(并打印 abcdefghijkl 而不是 abcghidefjkl)。
如何重写我的 printf 语句以打印 abcghidefjkl?另外,我怎么能用整数和双精度来做到这一点(即 - 使用data2和data3)
int main()
{
int i = 0;
char data[4][3] = { {'a','b','c'},{'g','h','i'},{'d','e','f'},{'j','k','l'}};
int data2[4][3] = { {1,2,3},{7,8,9},{4,5,6},{10,11,12}};
double data3[4][3] = { {1,2,3},{7,8,9},{4,5,6},{10,11,12}};
for(i=0;i<12;i++)
{
printf("%c\n", **(data)+i*sizeof(char));
}
return 0;
}
谢谢!