读书人

scanf的疑惑很奇怪的用法解决方案

发布时间: 2012-03-28 15:40:03 作者: rapoo

scanf的疑惑,很奇怪的用法
int *w,n,i;
printf( "请输入权值的个数(> 1): ");
scanf( "%d ",&n);
w=(int*)malloc(n*sizeof(int));
printf( "请依次输入%d个权值(整型):\n ",n);
for(i=0;i <=n-1;i++)
scanf( "%d ",w+i);


最后那个scanf中的w+i是什么功能啊?
我是这样理解的:
{
scanf( "%d ",w);
w=w+i;
}

可是不对啊??为什么?
各位高手谢谢你们了!

[解决办法]
你可以这样
int *w,n,i,temp;
printf( "请输入权值的个数(> 1): ");
scanf( "%d ",&n);
w=(int*)malloc(n*sizeof(int));
printf( "请依次输入%d个权值(整型):\n ",n);
for(i=0;i <=n-1;i++)
{
scanf( "%d ",&temp);
*(w+i)=temp;
}
则可以通过编译

读书人网 >C语言

热点推荐