gpt4 book ai didi

c - 使用指针线性访问二维数组

转载 作者:行者123 更新时间:2023-11-30 17:46:50 24 4
gpt4 key购买 nike

我正在尝试使用指针将二维数组视为一维数组(因为根据我的理解,这就是它在内存中的方式)。我以为我已经有了它,然后我发现我只是添加了 'a' 的 ASCII 值(并打印 abcdefghijkl 而不是 abcghidefjkl)。

如何重写 printf 语句来打印 abcghidefjkl?另外,我怎样才能用整数和 double 来做到这一点(即 - 使用 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;
}

谢谢!

最佳答案

更改一行代码

#include "stdio.h"

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)); // here is the change
}

return 0;
}

关于c - 使用指针线性访问二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19140404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com