为什么不是1234

[复制链接]
查看11 | 回复3 | 2010-7-28 15:51:54 | 显示全部楼层 |阅读模式
#include
#define n 8
void fun(int*x,int i)
{*x=*(x+i);}
main()
{int a[n]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0;i<n/2;i++)
{printf("%d",a);}
printf("\n");
getch();}
是的 结果3234

回复

使用道具 举报

千问 | 2010-7-28 15:51:54 | 显示全部楼层
因为for循环前面调用了fun函数。fun(a,2);fun函数的功能是将数组头元素的值,赋值成数组的第三个元素的值。具体来说,a[0] = 1, a[2] = 3;执行fun(a,2);语句时,*X=*(X+i)的语句执行就转换成a[0] = a[2].所以数组a的头元素的值就从1变成了3.所以最终的输出结果是3234
回复

使用道具 举报

千问 | 2010-7-28 15:51:54 | 显示全部楼层
fun(a,2);这条语句把a数组的第三个数赋给了第一个数所以是3234
回复

使用道具 举报

千问 | 2010-7-28 15:51:54 | 显示全部楼层
你也不说说你的结果,是3234吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行