|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Anny黄 于 2015-6-22 22:40 编辑
该代码的目的是输入想要查询的行和列数,之后把查询的结果输出出来,我有试过输出出来,目的可以实现。但是有个小疑问,如果我去掉列数的输入限制。在用户输入的列数超出数组范围的时候。依旧会得出数值,而非地址。这是为什么呢!为什么会输出数值呢,二维数组里面不是没有这个值吗。废话不多说直接上代码求解答!这个是正确的代码,不妨各位手动把列的for循环备注掉试试看
- #include<stdio.h>
- void main()
- {
- int a,b;
- int s[3][4]={{0,1,2,3},{00,11,22,33},{000,111,222,333}};
- int *p,*p1,(*p3)[4];
- printf("请输入行数:");
- scanf("%d",&a);
- for(;a>2 || a<0;)
- {
- printf("输入错误,请重新输入行数:");
- scanf("%d",&a);
- }
- p=&a;
- printf("请输入列数:");
- scanf("%d",&b);
- for(;b>3 || b<0;)
- {
- printf("输入错误,请重新输入列数:");
- scanf("%d",&b);
- }
- p3=s;
- p1=&b;
- printf("s [%d] [%d] = %d",*p,*p1,*(*(p3+*p)+*p1));
- }
复制代码 |
|