所以我正在使用陣列撰寫一個蛇游戲,我必須更改行和列的值,而不是創建副本,因此我使用的是指標。
int main(){
int row=0,column=0;
int *rowPtr;
rowPtr=&row;
int *colPtr;
colPtr=&column;
我需要更改這些變數的值,并檢查它們是否在我想要的位置。我有一個在游戲板上創建我的蛇的功能,原型也被創建了。
create_snake(&row,&column,row,column,2); //creating snake
創建蛇函式在這里,也有行和列的引數,以便我可以在陣列上使用它們并進行檢查,但我也使用了指標,以便在使用實際值之前更改行和列的值行和列
void create_snake(int *rowPtr,int *colPtr,int row,int column,int x){
pointerset(rowPtr,colPtr);
printf("%d %d",row,column);
if(board[row][column]==1){
create_snake(rowPtr,colPtr,row,column,x);
}else if(board[row][column]==0){
board[row][column]=x;
}else{
create_snake(rowPtr,colPtr,row,column,x);
}
}
為了給行和列提供亂數,還有另一個函式。
void pointerset(int *rowPtr,int *colPtr){
*rowPtr=rand()%25;
*colPtr=rand()%64;
}
我試圖查看變數值的變化位置,因此我使用了
printf("%d %d",row,column);
當我在函式中使用它時,create_snake()它給我 0 0 行和列,當我create_snake()在主函式下使用這個 printf 時,在函式作業和停止后,它給我我創建的亂數,而不是 0 0 但我需要它們在功能作業時進行更改。我根本無法解決使用指標失敗的地方。
我已經創建了這個函式,pointerset()因為如果我只是在寫
*rowPtr=rand()%25;
*colPtr=rand()%64;
到create_snake()它不起作用的功能。
uj5u.com熱心網友回復:
所以這里是事情,*rowPtr 獲取指標的整數值,而 rowPTr 沒有(我猜是記憶體地址?我不確定)
我洗掉了引數在呼叫該函式row和column,而是用于所有指標。
我以為我不能使用指標來檢查我的電路板,它是一個陣列的索引,但我可以簡單地輸入board[*rowPtr][*colPtr] 并且它可以作業,我寫的時候沒有星號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/402627.html
標籤:
