标题:指针跟二维数组的一点问题, 会的麻烦看下,谢谢了
只看楼主
gg0013
Rank: 2
等 级:论坛游民
帖 子:25
专家分:16
注 册:2012-11-26
结帖率:100%
 问题点数:0 回复次数:2 
指针跟二维数组的一点问题, 会的麻烦看下,谢谢了
#include<stdio.h>
#define N 4

void  main()
{
int n,i,j;
int s[N][3]={0};
int (*p)[3];

p=s;
for(i=0;i<N;i++)
{
 printf("请输入学生的学号:");
 scanf("%d",&(*(p+i)));
 printf("输入成绩:");
 for(j=0;j<3;j++)
 {
  scanf("%d",&(*(*(p+i)+j)));
 }
 for(i=0;i<N;i++)
  for(j=0;j<3;j++)
   printf("%4d",*(*(p+i)+j));
  printf("\n");
}
}




1,运行后的, 为什么会不再循环了,出现那么多0?是哪里逻辑思考出错了?

2,若将#denfine N 4,改成#denfine N 5,内存空间是重新开辟新一个空间?还是覆盖之前的空间
搜索更多相关主题的帖子: 谢谢 include 
2013-05-14 18:58
gg0013
Rank: 2
等 级:论坛游民
帖 子:25
专家分:16
注 册:2012-11-26
得分:0 
好的, 是输出时候for(i=0;i<N;i++)这句重复了, 因为输出的时候还在外部的for(i=0;i<N;i++)循环中。
2013-05-14 19:26
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:0 
因为你数组初始化的时候都是零,然后你途中就对头三个赋值,所以剩下的就都是零了

Maybe
2013-05-14 21:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407077-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.390607 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved