A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

例如:
int a[2][3]={1,2,3,4,5,6};
int (*p)[3]=a;
如何通过p++来遍历这个数组,输出值,不是地址!求大神指导

8 个回复

倒序浏览
*(*(p+i)+j) i两次 j三次
回复 使用道具 举报
blazehot18 来自手机 中级黑马 2015-11-22 14:09:04
藤椅
谢谢!不是要这种效果!要自增的!你这个的我明白!用p[i][j]也可以实现你说的这种诶!但不是p自增的形式  就是用++来控制列数增加
回复 使用道具 举报
blazehot18 来自手机 中级黑马 2015-11-22 14:11:29
板凳
p是指针变量!但是不知道怎么用它自增!实现遍历!求指导,谢谢支持的大神们
回复 使用道具 举报
楼主的指针变量p定义的是二维数组的行指针,应该不能通过p的自增来遍历二维数组吧。p指向的是第一行元素的首地址,p自增之后,依次指向下一行的首地址,获取数组元素也只能获取相应行的第一个元素
回复 使用道具 举报
for 两层循环应该能做到吧
回复 使用道具 举报
*(*(p++)++)  试试这个 但是还是需要 i 和 j 进行控制
回复 使用道具 举报
你说的是这种吧!利用数组的连续性,数组名为首地址,声明一个指针指向收地址,然后遍历。  满意的话求打赏哦!
  1. #include <stdio.h>
  2. int main(int argc, const char * argv[]) {
  3.     int a[2][3] = {1,2,3,4,5,6};
  4.     int *p = a;
  5.     for (int i = 0; i<6; i++) {
  6.         printf("%d\t",*(p++));
  7.     }
  8.     return 0;
  9. }
复制代码


回复 使用道具 举报
blazehot18 来自手机 中级黑马 2015-11-22 23:53:04
9#
谢谢!我估计是不能实现,我想要的是行数通过i变量控制让后让表达式*(*(p+i)++),自增!代替j控制列!但是想了想,那样估计不行吧!估计表达式,不想变量有具体地址,或内存
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马