| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖
标题:这两个程序为何不一样
只看楼主 加入收藏
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
 问题点数:0 回复次数:3 
这两个程序为何不一样

#define N 4
int fun(int (*p)[N],int m,int *q)
{int i=0,n,*s;
n=N*m;
s=(int *)p;
for(i=0;i<n;i++)
*(q+i)=*(s+i);
return n;

}
main()
{int a[5][N]={{11,12,13,14},{21,22,23,24},{31,32,33,34},{41,42,43,44},{51,52,53,54}},b[20]={0},i,len;
len=fun(a,5,b);
for(i=0;i<len;i++)
{printf("%4d",b[i]);
if(i%4==3)
printf("\n");
}
}
****************************************************
#define N 4
int fun(int (*p)[N],int m,int *q)
{int i=0,n;
n=N*m;
p=(int *)p;
for(i=0;i<n;i++)
*(q+i)=*(p+i);
return n;

}
main()
{int a[5][N]={{11,12,13,14},{21,22,23,24},{31,32,33,34},{41,42,43,44},{51,52,53,54}},b[20]={0},i,len;
len=fun(a,5,b);
for(i=0;i<len;i++)
{printf("%4d",b[i]);
if(i%4==3)
printf("\n");
}
}

搜索更多相关主题的帖子: fun 
2006-06-30 07:58
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
#include <stdio.h>

#define N 4

int fun(int (*p)[N],int m,int *q)
{
int i=0,n=N*m;
p=(int *)p;//这是废语句!p的属性并不会因此改变!
for(i=0;i<n;i++)
//因而此句*(q+i)=*(p+i);应调整为
*(q+i)=*(*(p+i/N)+i%N);
return n;
}

main()
{
int a[5][N]={{11,12,13,14},{21,22,23,24},{31,32,33,34}
,{41,42,43,44},{51,52,53,54}}
,b[20]={0},i,len;

len=fun(a,5,b);
for(i=0;i<len;i++)
{
printf("%4d",b[i]);
if(i%4==3)
printf("\n");
}
}

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-30 15:17
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 
p=(int *)p;//这是废语句!p的属性并不会因此改变!
为什么啊!呵呵!我是自学的,好多地方不懂!

I am a programmer !
2006-07-17 22:42
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-17 22:50
快速回复:这两个程序为何不一样
数据加载中...
 
   



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

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