Początkującego pytań kilka

0

Witam !

Dopiero zacząłęm uczyć się C, a przy oglądaniu paru kodów nurtuje mnie pare pytań:

1

int main(int argc, char *argv[])

no dobra... to w nawiasach to są deklaracje zmiennych, tylko że działających wyłącznie w danej funkcji.. no bo to akurat jest main, ale gdyby było np.
void main2(int argc, char *argv[])
to int arg i char *argv[] działały by tylko w obrębie void main2 ?

No gdyby tak... to po co oni podają to w nawiasach.. nie mogli by zrobić normalnie ładnie cudo piknie i w ogóle :P

int main(void)
{
int argc;
char *argv[]
(...)
}
?????

No tak ;] Nie ma to jak skleroza.. reszty pytań zapomniałem, ale jak sobie przypomne to zedytuje i dopisze :)

0

Moze inaczej, czym rozni sie :

int main(int argc, char *argv[])
  • powoduje ze ta funkcja przyjmuje zewnetrzne parametry a w wypadku funkcji main sa to parametry wysylane wraz z wl. programu
int main(void)
{ 
 int argc;
 char *argv[]
 (...)
} 

  • to z kolei to sa tylko definicjie i deklaracje zmiennych ktore mozna uzyc wewn. funkcji :) a funkcja main jest wywolywana bez parametru

//DOPISANE DO POSTU PONIZEJ

POCZYTAJ O WSKAZNIKACH :)

0

Od razu widać, że zaczynasz. Te zmienne do parametry... tak te, które wpisujesz podczas uruchamiania programu i tak w
<cpp>int main(int argc, char *argv[])cpp>
argc oznacza liczbę parametrów
a argv[] to tablica wskaźników (taki mały tip: char * to takie coś jak string)

0

aha.. czyli jeżeli dopisze przy deklaracji funkcji w nawiasie jakies deklaracje zmiennych , to po to, aby (w jakiś sposób potem) pobrać je z np. systemu.. a gdyby były W samej funkcji ( { } ) zadeklarowane to tylko mógłbym je pobrać z programu.. tak zrozumiałem :)

No i np. jak są te żeby je pobrać z zewnątrz to ./program --blabla :)

aha.. no i drugie pytanie..

int main(int argc,int **argv)

y.. na co te "**" przeciez int argv.. no to zwykła integer na argv :/

Przepraszam że tak truje ale przekopałem juz pełno kursów a tam takich informacji nie piszą raczej :> W konću forum jest po to żeby sie pytać :)

0

aha.. czyli jeżeli dopisze przy deklaracji funkcji w nawiasie jakies deklaracje zmiennych , to po to, aby (w jakiś sposób potem) pobrać je z np. systemu.. a gdyby były W samej funkcji ( { } )

Masz rację, ale nie do końca :) Otóż jak zapewne wiesz program zaczyna się wykonywać od funkcji main (a jeżeli kożystasz z API to od WinMain), toteż tylko ta funkcja pobiera informacje z systemu przez parametry (co nie znaczy, że nie możesz pobrać informacji w inny sposób). Ale zamieszałem :d. Najprościej będzie jak przyjmiesz do wiadomości, że funkcja main() zawiera w swoich parametrach informacje o parametrach podanych podczas uruchamiania programu. Podsumowując pobieranie ww informacji dotyczy tulko funkcji startowej.

int main(int argc,int **argv) 

na co te "**" przeciez int argv.. no to zwykła integer na argv :/

Funkcja jest taka:

int main(int argc, char *argv[])

... i niech taka zostanie.

Jeżeli Cię to ciekawi to powiem, że możesz napisać

void main()
{
 // instrukcje 
}

zamiast

int main( int argc, char*argv[] )
{
 // instrukcje 
 return 0;
}

różnie się to tym, że w pierwszej twój program będzie ignorował parametry.

A teraz coś do poczytania (naprawdę warto):
wskaźniki: http://avocado.risp.pl/files/texts/od0dogk/html/1_8.html
megatutorial, czyli to co musisz przelecieć (:-)) koniecznie, bo na pewno coś się dowiesz: http://avocado.risp.pl/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=22

0

Dziękuje bardzo za wszystkie odpowiedzi ;] Poczytam Poczytam ;]
Jakby ktoś miał jeszcze coś do dodania niech pisze, tylko że chyba już wszystko zostało wyjaśnione :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1