黑马程序员技术交流社区
标题:
二维数组指针用*p[i]+j遍历数组,代码+个人见解
[打印本页]
作者:
TTsu
时间:
2015-9-6 01:20
标题:
二维数组指针用*p[i]+j遍历数组,代码+个人见解
本帖最后由 TTsu 于 2015-9-6 01:29 编辑
#include <stdio.h>
int main(int argc, const char * argv[]) {
int arr[3][3] = {
{1,2,3}, // &arr[0][0] ---> p[0]
{4,5,6}, //
{7,8,9} //
};
int (*p)[3] = arr;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d\t",*p
+j);
}
printf("\n");
}
return 0;
}
运行结果:
1 2 3
4 5 6
7 8 9
个人见解还是不发了
作者:
TTsu
时间:
2015-9-6 01:31
printf("%d\t",*p+j); 应是 printf("%d\t",*p[i]+j);不知道为什么怎么修改都改不过去
作者:
颖峰
时间:
2015-9-6 01:34
为什么没有个人见解啊
作者:
TTsu
时间:
2015-9-6 01:44
本帖最后由 TTsu 于 2015-9-6 01:47 编辑
颖峰 发表于 2015-9-6 01:34
为什么没有个人见解啊
列指针啊
作者:
我张云杰
时间:
2015-9-6 08:56
printf("%d\t",*(*(p+i)+j);这个才对,你那个结果肯定不对
作者:
TTsu
时间:
2015-9-6 09:19
本帖最后由 TTsu 于 2015-9-6 09:23 编辑
我张云杰 发表于 2015-9-6 08:56
printf("%d\t",*(*(p+i)+j);这个才对,你那个结果肯定不对
我说了是列指针 printf("%d\t",*p
+j) 没有问题
作者:
TTsu
时间:
2015-9-6 09:24
我明明想打的时printf("%d\t",*p[i]+j)
为什么论坛里面老给我显示成printf("%d\t",*p+j)
作者:
bustle
时间:
2015-9-6 09:38
*p+j 难道不是行指针取值吗???
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2