void GameBox()
{
int i,j,k;
color(14);
for(j=2;j<=22;j+=5)
{
gotoxy(15,j);
for(k=1;k<42;k++)
{
printf("-"); //列印棋盤的橫向邊框
}
printf("\n");
}
for(i=3;i<7;i++)
{
gotoxy(15,i);
printf("| | | | |"); //列印棋盤縱向邊框
}
for(i=8;i<12;i++)
{
gotoxy(15,i);
printf("| | | | |");
}
for(i=13;i<17;i++)
{
gotoxy(15,i);
printf("| | | | |");
}
for(i=18;i<22;i++)
{
gotoxy(15,i);
printf("| | | | |");
}
gotoxy(16,1);
color(11);
printf("游戲分數: %ld",score);
}
這里的ij表示行列的話,k表示什么呢?
int *add(int item[])
{
int i=0,j=0;
static int tep[4]={ 0, 0, 0, 0}, tmp[4]={ 0, 0, 0, 0};
for(i = 0; i < 4; i ++)
{
if(item[i] !=0) //如果這個格子里有數字
{
tep[j++]=item[i];
}
}
for(i=0;i<4;i++)
{
if(tep[i]==tep[i+1]) //如果兩個數字相同,則合并
{
tep[i] *= 2;
tep[i + 1] = 0;
score=score+tep[i];
}
}
j=0;
for(i = 0; i < 4; i ++)
{
if(tep[i] != 0)
{
tmp[j++]=tep[i];
}
}
return (int *)(&tmp);
}
這里的 return (int *)(&tmp) ;是什么意思, 還有別的寫法嗎?
uj5u.com熱心網友回復:
回傳tmp的地址,別的方式就是直接定義指標,回傳指標uj5u.com熱心網友回復:
tmp沒有看到定義啊uj5u.com熱心網友回復:
return tmp;
這樣寫也是可以的。
因為tmp是陣列,陣列名就是陣列的首地址。
uj5u.com熱心網友回復:
&tmp真是糟粕。tmp一般被認為是首地址,更像一個右值。還能取個地址是萬萬沒想到的。不過我試了以下并不報錯。
&tmp是一個int(*)[4]型別的。一個指向 4倍int長度陣列 的指標。是我見識短淺,這種型別過去少有見識。
不過非常有趣,有一定的實用價值。
所以我對此有個看法了:&tmp這里的tmp已不作首地址意義,而僅是作為陣列的指代意義
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/44279.html
標籤:C語言
上一篇:出現no matching function for call to 'Teacher::Teacher()'怎么解決
