What does int argc, char* argv[] mean?

Поделиться
HTML-код
  • Опубликовано: 10 ноя 2024

Комментарии • 308

  • @hass89
    @hass89 8 лет назад +382

    Argc is ARGument Count and and argv is ARGument Vector.

    • @felipemartin8255
      @felipemartin8255 7 лет назад +13

      And "Vector reffers to an array, not a C++ or Euclidean vector"
      See reference here:
      www.cplusplus.com/articles/DEN36Up4/
      Ps.: Although the name of the site be cpluplus.com, all the teachings contained there are compatible with C.

    • @dronebee
      @dronebee 7 лет назад +7

      Kingsman is KINGdom's MAN.

    • @lovemoreanime6981
      @lovemoreanime6981 6 лет назад +1

      is he managing directory by programming ?

    • @hetaeramancer
      @hetaeramancer 3 года назад +2

      what are counts and vectors in C?

    • @Phantom-fi8sc
      @Phantom-fi8sc 3 года назад +1

      @@hetaeramancer I tried to print the argv it shows the path of some designated file

  • @Rookwie
    @Rookwie Год назад +13

    I couldn't understand this for so long, I read some stack overflow, watched some tutorials, looked up some problems and nothing helped until I found this video, great explanation!! Feels way better to finally understand this

  • @mustafaadam9697
    @mustafaadam9697 9 лет назад +194

    You CAN declare a variable inside a for loop in C. Just use C99 or C11.

    • @nicolareiman9687
      @nicolareiman9687 4 года назад +15

      @Artem Katerynych It's a standard that the compilers have to follow. it's not a version

    • @nicolareiman9687
      @nicolareiman9687 4 года назад +16

      @Artem Katerynych Well technically we're both late.

    • @316monisbandey3
      @316monisbandey3 4 года назад

      @@nicolareiman9687 yes

    • @NateROCKS112
      @NateROCKS112 2 года назад +1

      @@nicolareiman9687 it is a version, if you define it to be "[a] particular form or variation of an earlier or original type" (American Heritage Dictionary, 5th Edition). It's not a version of a particular C implementation -- such as a compiler or standard library -- but it is a version of the C language.
      Edit: And I'm also a year late, lol.

    • @redemedy8602
      @redemedy8602 2 года назад +1

      i was about to. To be honest i dont get why ppl dont use c99. I just dont get it. If anyone can explain i will apreciate it alot

  • @reneezmp
    @reneezmp 2 года назад +37

    Hey Paul, I'd like you to thank for putting your energy into making this tutorial. It was really enlightening and it made me comprehend the concept much better. Keep up the awesome job.

  • @mikroelektro
    @mikroelektro 8 лет назад +61

    Never understood it until I saw you video 👌👍

  • @86jam184
    @86jam184 Год назад +1

    I want this guy to explain literally everything in my life

  • @morenoramalhofreitas5688
    @morenoramalhofreitas5688 Год назад

    Awesome video! I'm brazilian and I want you to know that your video are healping people from all around the world! Thank you very much!

  • @tonyblue5057
    @tonyblue5057 Год назад +1

    You are literally the best my professor expected most of us to know c and it took me about 2 weeks on an assignment because i couldn't figure this out but bc of u i have been able to solve the task on the assignment. Thank u.

  • @jahitrst2863
    @jahitrst2863 4 года назад +19

    This scared me in the past to start with c++, but it's actually such a simple concept.

  • @eatyourspinachtomperez8700
    @eatyourspinachtomperez8700 7 лет назад +13

    Thx Paul.
    I recall Jullian Assange saying, "commitment requires sacrifice, courage is contageous". (The latter meaning if you surround yourself w/ your peers, courage is contageous).
    This said, while learning to code, (we're ALWAYS students however), we forget previous lessons etc, the "commitment" part is, constantly reviewing what we may forget.
    This said, THANK YOU for your great work here on RUclips.
    Cheers
    T

  • @edwardmacnab354
    @edwardmacnab354 2 года назад

    This is the clearest explanation I have ever seen on this particular item !

  • @johncusack4730
    @johncusack4730 2 года назад

    Man, you are amazing! You really know what you're doing. Please, don't stop!!!

  • @yann8442
    @yann8442 4 года назад +3

    You are better at explaining than my actual teachers. +1 sub

    • @untipoacaso5763
      @untipoacaso5763 2 года назад

      maybe you mean sub++ ( I know, I'm not funny)

  • @jalalbounaim
    @jalalbounaim 3 года назад

    Very clear, concise, to the point, intelligible. Many thxs

  • @jesusnoseke4038
    @jesusnoseke4038 4 года назад

    I have been searching so much for this, even my book doesn't explain what is this, thx a lot

  • @AZUBUIKETHANKGOD-wp2ri
    @AZUBUIKETHANKGOD-wp2ri Год назад +1

    Quite a lucid explanation. Thanks Paul for making such an awesome video. You've gained a subscriber.

  • @mistakenmeme
    @mistakenmeme 3 года назад +9

    I remember being so intimidated by this when I started learning C++. But then I learned that I didn't need it at all and I forgot about it completely.

    • @ibrahimozmen9668
      @ibrahimozmen9668 3 года назад

      so do i have to learn this or what bro i am a cs student who are a completely beginner :)

    • @mistakenmeme
      @mistakenmeme 3 года назад

      @@ibrahimozmen9668 unless you are building commandline applications for Linux or old terminal based systems, you don't need to worry about it.

    • @ibrahimozmen9668
      @ibrahimozmen9668 3 года назад

      @@mistakenmeme thanks bro. I just wanted to learn how it works

  • @makunenbrawl7995
    @makunenbrawl7995 3 года назад +1

    That's very simple by listening you. Love the away you explain think. Nice work

  • @s.spambot9095
    @s.spambot9095 3 года назад

    OMFG I was reading about this for like 1 hours and couldn't understand shit, and you made it so clear!!! Thank you!!

  • @celestinemachuca2339
    @celestinemachuca2339 3 года назад +1

    thanks, i sleep thru my last lecture, this clears a lot!

  • @Elliandr
    @Elliandr 7 лет назад

    You explained this way better than my teacher.

  • @agbochinonso896
    @agbochinonso896 2 года назад +5

    You actually can declare a variable in a for loop in C
    And, how did you use your atoi(). Is it a std function from a C library.
    Thanks for this video. You actually made effort to make this concept as simple as possible

  • @6183134
    @6183134 9 лет назад

    (In C programming it is not necessary to put in a for loop the type of the value...) Very good tutorial!!

  • @LapCreativeStudio
    @LapCreativeStudio 3 года назад

    always provide notes to things you have spoken makes us understand better okay 👍
    thank u so much for your efforts
    love from india

  • @adamodimattia
    @adamodimattia 4 года назад +2

    Mindblowing! First I wondered what it was in Java, then in C# and now I finally got the answer in C++ :)

    • @frogsam4228
      @frogsam4228 2 года назад

      it's actually C

    • @adamodimattia
      @adamodimattia 2 года назад

      @@frogsam4228 it's identical in this case

    • @frogsam4228
      @frogsam4228 2 года назад

      @@adamodimattia Idk tbh bcz I know nothing about c++
      but I'm sure that the format of main itself is different also the standard library is iostream right?
      so I guess they can't be identical right

    • @adamodimattia
      @adamodimattia 2 года назад +1

      @@frogsam4228 it is, but also in C++ you can use everyting what is in C, all the C libs too

    • @frogsam4228
      @frogsam4228 2 года назад

      @@adamodimattia ooh I didn't know that
      thanks a lot

  •  3 года назад

    Great explanation, most of the university professors can't explain this.

  • @cinarioan2766
    @cinarioan2766 5 лет назад

    so clear and excellent explanation.
    Just to mention that the arguments must have a space or TAB between them and not a ; or ,

  • @johnnywonglw2351
    @johnnywonglw2351 7 лет назад +1

    SO WELL-EXPLAIN that I just signed in to give you a thumb-up!!! Thank you for the clear explanation.

  • @VietCong467
    @VietCong467 7 лет назад

    Brilliant explanation, Paul! You just got yourself a new subscriber!

  • @hoanghieu6389
    @hoanghieu6389 8 лет назад +32

    excellent explain.

  • @Kader_1
    @Kader_1 Год назад

    Thank you, very clear and concise explanation.

  • @tinal3991
    @tinal3991 Год назад

    Explicitly explained! Thank you paul!

  • @MaTTeO29c
    @MaTTeO29c 4 года назад +1

    Thank you for your video! I'm French and it's super easy for me to understand everything. You took your time to be understandable and thank you so much for that!

  • @juliedurbin4465
    @juliedurbin4465 7 лет назад

    This video was so helpful with understanding my embedded systems homework. Your video really clears some things up. Thanks so much!

  • @ouadieelouardy1171
    @ouadieelouardy1171 Год назад

    From ALX AFRICA
    Nice Explanation!

  • @TheDavidlloydjones
    @TheDavidlloydjones 5 лет назад

    Paul, A nice clear intelligent presentation.
    Well done and thank you!
    (Props also to Hassanin Ahmed, below.)

  • @qwerasdfhjkio
    @qwerasdfhjkio 5 лет назад

    Did you make a C programming tutorial? You explanations are so clear

  • @faithabike664
    @faithabike664 Год назад

    Thanks Paul for this insightful video 😊.

  • @GodOfLemon
    @GodOfLemon 7 лет назад +11

    My friend, in C you can declare "int i=0" in the for loop. Wish you the best!

    • @ledues3336
      @ledues3336 7 лет назад +2

      Alexandru Dinu yes, but that variable would be deleted as soon as the for loop finishes!

    • @upcom1ng116
      @upcom1ng116 3 года назад

      @@ledues3336 Can you please explain a bit more? or point to the right source? Because CS50 does the same as Alexandru mention above.

    • @marcelbarbosa281
      @marcelbarbosa281 3 года назад +1

      ​@@ledues3336 Yes, this is the intent.

  • @puertea2537
    @puertea2537 8 лет назад +7

    Oh my god you are my hero!!! thank you so much bro... subscribed already

  • @sidharths9416
    @sidharths9416 5 лет назад

    No words to explain. !!! Thanks a lot!!!!!

  • @shadyfixtech4763
    @shadyfixtech4763 Год назад

    Well explained Paul. Thanks.

  • @volkerking5932
    @volkerking5932 4 года назад +1

    I'm new in porgramming and this video show me for what is this argc and argv. But for what need argc to count his own call from the elter process?

  • @frostypawsgaming1338
    @frostypawsgaming1338 7 лет назад

    Cool, this confirmed my book seemed weird that it said this had to double check. good job.

  • @chikir9777
    @chikir9777 2 года назад

    Thanks works fine. Greetings from Italy

  • @godsugodsu4719
    @godsugodsu4719 4 года назад

    Bro holy shit. I misunderstood arg c and argv when i first heard it. But god damn now i finally know how to use it. Thank you so much

  • @adam3416
    @adam3416 6 лет назад

    finally the first helpful vid on this topic!

  • @Slausonkidd
    @Slausonkidd Год назад

    You just got a new subscriber thanks Paul

  • @TransparentOperatingMode
    @TransparentOperatingMode 10 месяцев назад +1

    You say you can't use 'int' inside your declaration of a for loop: for (int i = 0; ;) Yet I've never had an issue with it in C. I do it all the time. No problems ever.

  • @mixagames5425
    @mixagames5425 3 года назад

    Thanks, this has confused me and I have it on my exam. You cleared it up :)

  • @ImaginaryHuman072889
    @ImaginaryHuman072889 7 лет назад +4

    excellent explanation.I've also seen some "cousins" of this. Can you tell me what is the difference between the following?int main(int argc, char* argv[])int main(int argc, char *argv[])int main(int argc, char** argv)int main( int argc, char **argv)

    • @NateROCKS112
      @NateROCKS112 2 года назад +2

      This is very late, but I got recommended this video, so this is for anyone reading. Spaces don't matter when placing the asterisk in a pointer declaration.
      Also, technically, the C library passes a pointer to a pointer to main, hence the **argv. The array definition (with the brackets) is just syntactic sugar and makes it more understandable. You can test this by calling sizeof(argv). If it's actually an array, the size of the array would be stored on the stack, but it's actually just of type char**, so it'll return 8 on a 64-bit machine (which is the size of a pointer). The memory addresses to the strings are just stored one after the other.

    • @DbCo0pEr
      @DbCo0pEr 2 года назад +1

      @@NateROCKS112 does that mean **argv and *argv[] both indicate pointer to pointer?

    • @NateROCKS112
      @NateROCKS112 2 года назад +2

      @@DbCo0pEr yes. To my knowledge, in C, when you declare an array as a function parameter (e.g., void my_function(int my_array[]);), the array "decays" into a pointer. So it's purely syntactic sugar in that case. Edit: However, it can help to think of it as an array conceptually, and the type declaration still appears in documentation. I would personally use char *argv[] for that reason. Edit 2: I did want to note that normal arrays, such as within the same function scope, are slightly different from pointers, mostly in that sizeof actually gives the size of the array. So it's not just syntactic sugar in that case.

    • @edwardmacnab354
      @edwardmacnab354 2 года назад

      @@NateROCKS112 You have to really know what you are doing . What the compiler sees and what you see aren't always a matchup , take obfuscated C for example , the compiler knows exactly what to do even though you may have no idea whatsoever by reading the code . That's why so many people are afraid of C !

  • @anonimosilva6723
    @anonimosilva6723 11 месяцев назад

    Thank you for this excential explanation!!

  • @tuananh284220
    @tuananh284220 4 года назад

    I learn something today! Good explanation. Thanks!

  • @godsrighteousness5003
    @godsrighteousness5003 4 года назад +7

    i always declare variables in for loops in c

  • @jm52SD
    @jm52SD 6 лет назад +1

    EXCELLENT video, just subscribed. thanks

  • @kebsem
    @kebsem 8 лет назад

    Thank you very much. The video was clear, easy to understand, and helpful!

  • @perelium-x
    @perelium-x 2 года назад +1

    BRAVO! Thanks so much sir.

  • @batler12
    @batler12 Год назад

    Thanks for the explanation, God bless you!!!

  • @FanaticBall
    @FanaticBall 4 года назад +1

    If you are not already, you should be a teacher. This is insanely clear.

  • @bluegiant13
    @bluegiant13 6 лет назад +1

    Thanks for the explanation I get it, but why is it required? What happens in the background process?

  • @AndrewChapman-j6p
    @AndrewChapman-j6p 8 месяцев назад

    So clear and simple ❤

  • @shashamnk2525
    @shashamnk2525 9 лет назад

    This is great! thanks from India paul

  • @Parcha24
    @Parcha24 5 лет назад +3

    Main question remains unanswered, Why do we use outside run argument from command line, when we could easily get the same output by conventional way

    • @sumiahmed2308
      @sumiahmed2308 5 лет назад

      That is rather about personal wish, many programs are designed to check if argc ==0 if it is then manually ask for the inputs, it's for them who need their work done quick

    • @sumiahmed2308
      @sumiahmed2308 5 лет назад +1

      We use g++ something.cpp and we are also providing input at commandline rather than
      g++
      g++ : Enter name of file to be compiled - something.cpp
      We use it cuz some programs dont support manual input or personal wish

  • @cruisetvshow
    @cruisetvshow Год назад

    good explanation. well understood. thanks man

  • @piotrwolak8489
    @piotrwolak8489 6 лет назад +6

    really helpful, although the if loop seems unnecessary. If the argc

  • @benkelcoder5947
    @benkelcoder5947 5 лет назад

    Thank you, from Turkey.

  • @samdavepollard
    @samdavepollard 4 года назад

    good one
    i can put scanf back on the shelf and just pass values in when i run stuff
    many thanks for sharing your knowledge
    subbed

  • @adetolasanni007
    @adetolasanni007 2 года назад

    Thank you. Pretty decent explanation.

  • @simonfoo96
    @simonfoo96 3 года назад

    Thanks for this tutorial!!! It helps a lot!

  • @raiyanreza9764
    @raiyanreza9764 4 года назад

    Great video!
    Just wanted to deepen my understanding, when will we want to use these?

    • @mice2188
      @mice2188 2 года назад +2

      Presumably when you want a quick way to pass in arguments into your program?

  • @leedavis7143
    @leedavis7143 7 лет назад +2

    perfect lecture!~thank you, Paul~~~~~

  • @EnesARAT
    @EnesARAT 4 года назад

    You are a Hero. Are there any video list about similar topics about visualization, linux and bash etc.

  • @RyanLasek
    @RyanLasek 4 года назад

    Thank you. Your teaching had a very clear progression from basic code to more complex code.

  • @frankkkmate4267
    @frankkkmate4267 4 года назад

    Thanks so much dude,it really helps me in terms of my final...

  • @menachemlevi
    @menachemlevi 7 месяцев назад

    great explanation

  • @youzhen11
    @youzhen11 7 лет назад

    fantastic explanation!

  • @richardifeanyicaleb9653
    @richardifeanyicaleb9653 2 года назад

    Bro, thanks for details explanation.

  • @praveen1160
    @praveen1160 6 лет назад

    great explanation
    understood in one go...

  • @Man.sj9
    @Man.sj9 7 лет назад

    Wonderful explanation! Thanks.

    • @mrenmajozi2617
      @mrenmajozi2617 7 лет назад

      I have only seen
      The way I understand it
      - int main(int argc, char* argv[]) is like saying
      data_type array_name[]
      -int main(int argc, char* argv)
      This one takes a string called argv instead of an array. Since string is declared as char* string
      - int main( int argc, char **argv) uses a pointer concept
      Check this www.programiz.com/c-programming/c-pointers

  • @mahfuzuddin4545
    @mahfuzuddin4545 4 года назад

    great explanation!

  • @louisdasselaar7806
    @louisdasselaar7806 3 года назад

    Very good explenation!

  • @RCBajafreak
    @RCBajafreak 9 лет назад

    Perfectly explained, thx a lot bro!

  • @mattm32
    @mattm32 3 года назад

    Thanks it is very well explained

  • @aurianevez2624
    @aurianevez2624 4 года назад

    Thanks super clear explanation !

  • @facebook219
    @facebook219 2 года назад

    thanks a lot!!! so nice reverb

  • @deepakkumars8139
    @deepakkumars8139 4 года назад

    Well and clear explanationn...

  • @alehunter15
    @alehunter15 6 лет назад

    excellent examples and explanations cheers!

  • @sportsarena1303
    @sportsarena1303 2 года назад

    thanks for the video . i have a question while initiating i in the for loop why do we need to include i

  • @BittiKit
    @BittiKit 7 лет назад

    Thank you so much! Very clear explanation.

  • @0xkey434
    @0xkey434 6 лет назад

    Great tutorial!

  • @default-126
    @default-126 6 лет назад

    You are just amazing bro, thank you so much, you helped me a lot!

  • @tassneemaltaf2001
    @tassneemaltaf2001 9 месяцев назад

    Thank you so much for the help!

  • @andrasimion6731
    @andrasimion6731 5 лет назад

    best video explaining this! thank you

  • @leecaraway706
    @leecaraway706 4 года назад

    Well done, Paul you should teach at the University level.

  • @agdimitrova
    @agdimitrova 3 года назад

    Real savior!!!! Thank you!!!!

  • @kevinburgos6157
    @kevinburgos6157 4 года назад

    How did you get the ARGS file, that's the part that I don't understand.

  • @dav8485
    @dav8485 5 лет назад

    Great explanation, Thank you so much!

  • @TurskoVideos
    @TurskoVideos 7 лет назад

    Wow makes so much sense now. Thank you!

  • @rikkymalviya8323
    @rikkymalviya8323 6 лет назад

    Paul programming: gcc args.c -o
    : 1 2 3

  • @GDanielCho
    @GDanielCho 9 лет назад +1

    nice, when i took intermediate programming last semester my instructor insisted we all knew how to use argv and argc lol. should be very helpful to newer programmers.