Ceea ce în principal (int argc, char argv)

Recent, au început să învețe C ++, și eu nu înțeleg, de ce iau 2 argumente? Unul - număr întreg, iar al doilea - o matrice, și mai multă memorie este alocată într-un mod ciudat, fără noi. De unde vin aceste argumente, și de ce sunt ele folosite?

Acești parametri de linie de comandă care pot fi transmise la cererea dumneavoastră. Primul argument este motivul pentru care matrice încorporate în C / C ++ nu stochează mărimea și dimensiunea transferului - un mod de a învăța despre el (de exemplu, puteți aranja că ultimul element va fi zero, dar impune anumite restricții).

Memoria este alocată într-un mod ciudat, fără o nouă

Memoria este alocată într-un alt loc, și funcția vine doar indicatorul. Ca atare există - în momentul în care nu ar trebui să deranjeze. Regula principală să vă amintiți - „care alocă memorie, el și elimină de obicei“. În acest caz, compilatorul va insera toate codul necesar pentru a aloca memorie și liber. Deși există, de asemenea, un sistem de putin se poate aloca.

Cum de argumentele?

De exemplu, puteți rula programul ca

în acest caz, va avea o valoare argc 4. argv [1] este param1 egal. argv [3] este param3 egal. Se pune întrebarea, și care este elementul de zero? și apoi numele programului în forma în care acesta oferă sistemul de operare. Adică, poate exista o myprog într-o coajă, și numele cu calea completă.

  • Argumentele la principalele funcții (): argv și argc
  • Parametrii ale principalelor funcții (argc, argv)

Puteți specifica atunci când începe programul de ext. argumente linie de comandă.

Primul parametru, argc (argument count) indică numărul de argumente, iar al doilea parametru, argv (vectorul argument) sozherzhit direct argumente ele însele transmise la pornire.

Această linie de comandă argumente. argc - numărul, argv - matrice de argumente. Ele pot aduce pe ecran și a vedea ce se întâmplă. Zero este întotdeauna numele programului, apoi - indiferent.

Folosit, de exemplu, ca aceasta: să scrii ceva pentru a lucra cu fișiere. Când executați programul, vă întreb în mod natural utilizatorului pentru a specifica o cale de fișier cu care să lucreze. Dar este mult mai convenabil pentru a rula programul de la terminal la parametrul specificat deja: Admin:

/Documents/file1.txt - în acest caz, terminalul se poate adăuga numele fișierului sau ceva ușor de făcut. Și în Windows, puteți, de asemenea, trageți și plasați un fișier în program (aici nu-mi amintesc exact cum este trecut numele fișierului).

Din nou, acesta este doar un exemplu - vă limitează doar imaginația ta.

UPD: în timp ce scris a răspuns deja))