C++ ban mit jelent az int main(int argc, char * argv[]) kezdés? Eddig csak simán int main () -t használtunk és nem értem.
Az int main () a C-ben írt programok belépési pontja, azaz itt fog elkezdődni a megírt program futása.
A C nyelvben a "szubrutinok" függvényként vannak definiálva, azaz egy függvény hívásakor át lehet adni neki különböző paramétereket. Ezeket a függvény neve után következő zárójelben deklaráljuk.
Például: int aaa(int par1, int par2)
Ez egy olyan függvény, amelynek két egész tipusú értéket adunk át paraméterként.
A main() függvény pontosan ugyanígy épül fel, ennek is át lehet adni bizonyos paramétereket. Mivel ez egy speciális függvény (a program belépési pontja), ezért úgy definiálták, hogy paraméterként magát a parancssort kapja meg.
Az int main(int argc, char* argv[]) függvénynek átadott paraméterek a kövtkezők:
az argc egy olyan egész típusú változó, amely negmondja, hogy hány paraméter található a parancssorban,
az argv[] tömb pedig egy olyan két dimenziós karakter tömb (azaz string tömb), amelynek pontosan annyi eleme vcan, mint az argc értéke, és az elemek a parancssor egymást követő elemei lesznek.
Az argv[0] elem kitüntetett: ebben magának a programnak a nevét találod, mint 0-dik paramétert, a többi eleme pedig a parancssor elemei.
Például ha a programodat a "myprog 1 2 -v +eee" paranccsal indítod el, akkor az int main()-ként deklarált függvény erről nem fog tudni semmit, de az int main(int argc, char* argv[])-ként deklarált függvényen belül a paraméterként deklarált változók értéke a következő lesz:
argc = 5 (ennyi eleme lesz az argv[] tömbnek),
argv[0] = "myprog",
argv[1] = "1",
argv[2] = "2",
argv[3] = "-v",
argv[4] = "+eee".
Vagyis így tudsz átvenni értékeket a parancssorból a programodba.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!