注册 登录
编程论坛 C++教室

指针差的来看看,高手让开.

mfkblue 发布于 2013-02-03 12:41, 581 次点击
#include "stdafx.h"
#include <iostream>
using  namespace std;
void main()
{
    int a[2][5]={{0,1,2,3,4},{5,6,7,8,9}};
    int (*p)[5];
    p=a;
    cout<<*(*++p)<<endl;  //这里输出多少? 不能编译直接口算出来.
    getchar();
}
写代码实现双循环输出a数组.早上做的题,很过瘾啊.没分.
6 回复
#2
fanpengpeng2013-02-04 13:07
来算算这个是多少?会更过瘾的
**((int(*)[5])((int(*)[3])p + 1)+1)

#3
mfkblue2013-02-04 13:11
本来指针我就烂,你这个完胜.看晕了.
#4
hlhlf42013-02-04 15:29
运行了一下,结果是5
不明白,我是新手,真心求解。。。。。
#5
zhuanjia02013-02-04 21:55
口算为5
#6
zhuanjia02013-02-04 22:14
口算为5
#7
mfkblue2013-02-08 13:39
5楼不道德啊,四楼不会,你只说答案不说过程啊.
我也不知道怎么说.*p[0]==a[0],*p[1]==a[1],就是两个指针,一个指针一行.
*p[0]输出0,等于a[0][0];
++*p[0]输出1,等于a[0][1];
*(*++p)==*p[1]都是取第二指针指的第一个数字.
不知道这样理解对不对,反正这个二维的指针已经看的我头晕了.
1