予跨越程序传来:功能在C返回指针
int bags[5]={20,5,20,3,20};
int main()
{
int pos=5,*next();
*next()=pos; //problem with this line(should give error :lvalue required)
printf("%d %d %d",pos,*next(),bags[0]);
return 0;
}
int *next()
{
int i;
for(i=0;i<5;i++)
if(bags[i]==20)
return (bags+i);
printf("error");
exit(0);
}
输出到程序是5 20 5虽然我希望它是左值必需的。 任何人都可以告诉原因?
不能在键盘上编译(http://codepad.org/98m9rEjj)。有问题的行确实给出了一个错误。你使用了什么编译器? – ugoren 2012-04-21 18:52:33
@ugoren从每个句子中删除两个'*',这是一个形式化问题。 – MByD 2012-04-21 18:53:24
此代码不是合法的C代码。第4行和第5行似乎有语法错误。 – ssteinberg 2012-04-21 18:53:29