Περισσότερα
Τι σημαίνει int argc, char *argv[];
Σε πολλά C++ IDE's και μεταγλωττιστές, όταν δημιουργείται η κύρια συνάρτηση για εσάς, μοιάζει κάπως έτσι:
int main(int argc, char *argv[])
Όταν κωδικοποιώ C++ χωρίς IDE, μόνο με έναν μεταγλωττιστή γραμμής εντολών, πληκτρολογώ:
int main()
χωρίς καμία παράμετρο. Τι σημαίνει αυτό και είναι ζωτικής σημασίας για το πρόγραμμά μου;
475
3
Τα
argv
καιargc
είναι ο τρόπος με τον οποίο τα ορίσματα της γραμμής εντολών μεταβιβάζονται στηνmain()
στη C και τη C++.Το
argc
θα είναι ο αριθμός των συμβολοσειρών στις οποίες δείχνει τοargv
. Αυτό θα είναι (στην πράξη) το 1 συν τον αριθμό των επιχειρημάτων, καθώς σχεδόν όλες οι υλοποιήσεις θα προτάξουν το όνομα του προγράμματος στον πίνακα.Οι μεταβλητές ονομάζονται
argc
(argument count) καιargv
(argument vector) κατά σύμβαση, αλλά μπορεί να τους δοθεί οποιοδήποτε έγκυρο αναγνωριστικό:int main(int num_args, char** arg_strings)
είναι εξίσου έγκυρο.Μπορούν επίσης να παραλειφθούν εντελώς, δίνοντας
int main()
, αν δεν σκοπεύετε να επεξεργαστείτε τα ορίσματα της γραμμής εντολών.Δοκιμάστε το ακόλουθο πρόγραμμα:
argc
είναι ο αριθμός των επιχειρημάτων που περνάνε στο πρόγραμμά σας από τη γραμμή εντολών καιargv
είναι ο πίνακας των επιχειρημάτων.Μπορείτε να κάνετε βρόχο στα ορίσματα γνωρίζοντας τον αριθμό τους ως εξής:
Οι παράμετροι στο
main
αντιπροσωπεύουν τις παραμέτρους της γραμμής εντολών που δόθηκαν στο πρόγραμμα κατά την εκκίνησή του. Η παράμετροςargc
αναπαριστά τον αριθμό των ορίων της γραμμής εντολών και ηchar *argv[]
είναι ένας πίνακας συμβολοσειρών (δείκτες χαρακτήρων) που αναπαριστούν τα επιμέρους ορίσματα που παρέχονται στη γραμμή εντολών.