所以我的工作在C堆棧的實現利用結構,下面的事情是困擾我Struct對象名稱在C指針
typedef struct {
int vrh, polje[MAXSTOG];
} Stog;
void init_stog(Stog *stog) {
stog->vrh = -1;
}
int dodaj(int element, Stog *stog) {
if(stog->vrh == MAXSTOG-1) {
return 0;
}
stog->vrh++;
stog->polje[stog->vrh] = element;
return 1;
}
int skini(int *element, Stog * stog) {
if(stog->vrh < 0)
return 0;
*element = stog->polje[stog->vrh];
stog->vrh--;
return 1;
}
int main(){
Stog *stog;
init_stog(stog);
dodaj(5, stog);
dodaj(3, stog);
dodaj(2, stog);
int a;
skini(&a, stog);
printf("%d ", a);
skini(&a, stog);
printf("%d ", a);
return 0;
}
爲什麼Stog * stog;作品,即使指針不指向任何東西。我知道Stog是object_name,並且它已經實例化,所以只會將該指針指向實例化的struct,但我不明白添加指針時的語法,並且我無法在任何地方找到解釋。
你能解釋一下,我只是一個c語法的東西,或者我誤解了一些東西?
C? C++?請選擇。 – deviantfan
順便說一句,用英文名稱,你的代碼會更容易理解。 – deviantfan
這是C,沒想到把它轉換成英文,因爲它只有幾行代碼,我寫了它是棧實現,所以它不那麼難理解 – Zorkan