老師說以下這個程式你真的能夠了解,那指標的部分你就沒問題了,想忘也會忘不掉...
struct stackekement{
int element;
struct stackelement *next;
}
struct stackekement*stack;
stack=NULL;
void push(int stackin,struct stackelment **stack)
{struct stackekement *temp;
temp=(struct stackekement *)malloc(size(struct stackekement));
temp->element=stackin;
temp->next=*stack;
*stack=temp;
}
...POP的部分略刪,上課了時候老師有在黑板上畫圖解釋這個程式,看的時候還勉強可以
理解,但是下課後自己看到後面就傻掉了...
想請問:
1.一開頭的"struct stackekement{"是什麼意思??宣告第一個大括弧裡面的東西而已?
那這樣第一個大括弧下的"struct stackekement*stack"和他有什麼關係又是什麼意思??
2. temp=(struct stackekement *)malloc.......我知道這是要將malloc處理完的東西casting(強迫轉型),但是..."(struct stackekement *)"這又是什麼意思?那個*號不是指指標而是指casting為"struct stackekement"??
3."*stack=temp"這是指將temp這個指標內的值給副程式中的stack指標還是給主程式的stack指標??如果改寫成"*stack=*temp"在C的文法裡面會正確嗎??
這是資料結構上的東西,為了應付研究所計概部分會考到資結的東西,小弟是不是該裝個C語言的開發工具?(PS:我不知道那叫什麼,就是可以在電腦上面練習C的東西...)
裝那東西要花錢買嗎?初學者夠用裝哪套好
先謝謝熱心為小弟解惑的前輩了,如可圖解小弟會更感激
