予跨越程序傳來:功能在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