References in C++ Explained

Sdílet
Vložit
  • čas přidán 28. 05. 2024
  • Start your software dev career - calcur.tech/dev-fundamentals 💯 FREE Courses (100+ hours) - calcur.tech/all-in-ones
    🐍 Python Course - calcur.tech/python-courses
    ✅ Data Structures & Algorithms - calcur.tech/dsa-youtube
    ~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~
    ✉️ Newsletter - calcur.tech/newsletter
    📸 Instagram - / calebcurry
    🐦 Twitter - / calebcurry
    🔗 LinkedIn - / calebcurry
    ▶️ Subscribe - calcur.tech/subscribe
    👨🏻‍🎓 Courses - www.codebreakthrough.com
    ~~~~~~~~~~~~~~ SUPPORT ME ~~~~~~~~~~~~~~
    ↪ My Amazon Store - www.amazon.com/shop/calebcurry
    🅿 Patreon - calcur.tech/patreon-calebcurry
    🅖 GitHub Sponsors - github.com/sponsors/CalebCurry
    Ⓟ Paypal - paypal.me/calcur
    🅑 Bitcoin - 3HnF1SWTzo1dCU7RwFLhgk7SYiVfV37Pbq
    🅔 Eth - 0x350139af84b60d075a3a0379716040b63f6D3853
    📈 Buy Bitcoin - calcur.tech/crypto
    Reserve the Ruby Steel crypto rewards card and get a $25 bonus (use affiliate code "Caleb") - calcur.tech/crypto
  • Věda a technologie

Komentáře • 152

  • @codebreakthrough
    @codebreakthrough  Před rokem +1

    Check out the hands on guide - czcams.com/video/GVEcLAX7ogk/video.html
    Get notified of my upcoming C/C++ Courses - www.codebreakthrough.com/upcoming-c-cpp-courses

  • @valkyrja7280
    @valkyrja7280 Před 3 lety +142

    *sees an asterisk in code*
    My brain “OHHH HEEELLLLLLL NOOOOOO”

    • @Italy-rj2eb
      @Italy-rj2eb Před 3 lety

      @Messiah Atticus Hehe nice scam

    • @capitaopacoca8454
      @capitaopacoca8454 Před 3 lety +2

      You described my last week so well.

    • @ethangold4900
      @ethangold4900 Před 2 lety +1

      I've been like this since C
      I'm here to stop my confusion about pointers

    • @AbhishekBM
      @AbhishekBM Před 2 lety +1

      I can hear your comment

  • @facent523
    @facent523 Před 3 lety +90

    The fact that this guy is currently carving our way for our future just for us is priceless

    • @retrace
      @retrace Před 3 lety +1

      Fax

    • @du4lstrik3
      @du4lstrik3 Před 8 měsíci

      If this was your future, YOU would carve it for yourself.

  • @tsupi7056
    @tsupi7056 Před 3 lety +22

    Commenting for Yt algorithm

  • @skypuff
    @skypuff Před 3 lety +29

    Did you play the clip? 😂😂
    Man I love his vids. You can't be bored to death.

  • @cruellnat
    @cruellnat Před 3 lety +25

    Because it is very simple... which is why we need to talk about it. 😂

  • @rin0422
    @rin0422 Před 3 lety +39

    Thanks Caleb, I've been following your C++ Tutorial way back 2019 because you are a great teacher, you saved me a lot.

    • @rohanarya5400
      @rohanarya5400 Před 3 lety

      I've been looking for a follow up to his C++ course. Any suggestions?

    • @siddharthraghuveeremadaboi2901
      @siddharthraghuveeremadaboi2901 Před 3 lety

      @@rohanarya5400 get working on eulerprojects Github and Codeforces. You could get a reading on the book 'code'.

  • @llllllllll5119
    @llllllllll5119 Před 2 lety +2

    I've been struggling for weeks trying to understand this and pointers and you literally got it to click in 15mins. You're amazing, subscribed.

  • @AKTSR444
    @AKTSR444 Před 3 lety +3

    this is great. Now I got it. My prof sucks. He mixed pointer and ref and totally confused us.

  • @Diamond_Hanz
    @Diamond_Hanz Před 3 lety +4

    Crazy. I was reviewing this earlier! Keep it up!

  • @THATREISGUY14
    @THATREISGUY14 Před 2 měsíci

    Love your teaching method and your comedy sprinkled throughout! Thanks man!

  • @mordicai4296
    @mordicai4296 Před 2 lety +4

    Thank you Caleb! I'm in a C++ bootcamp and your channel has taken me from failing to an A!

  • @wendyargyle2333
    @wendyargyle2333 Před 5 měsíci

    This is the first time any C++ concepts really started to "click". Bro, keep up the good work! Thank you for your help!

  • @skypuff
    @skypuff Před 3 lety +8

    This was a wonderful video. I'll be patiently waiting for more.

  • @mykalesalad
    @mykalesalad Před 2 lety +1

    This was incredibly helpful, thank you for the detailed explanations!

  • @shashanksharma21
    @shashanksharma21 Před 3 lety

    this is awesome! thank you so much for creating these illuminating lectures !

  • @nilupulperera
    @nilupulperera Před 3 lety +15

    Wow, Caleb! Thank you so much for starting this series. I am in the middle of your first series of C++. That series is really awesome. I like your teaching style. You are a great teacher. I found you concluded the previous series a little short. I am delighted to see this intermediate series is started. Kindly continue this series. Your series is really helpful.

  • @azrflourish9032
    @azrflourish9032 Před 2 lety

    the way you teach is very effective and easy to understand. Thank you!

  • @nicholasmaniccia1005
    @nicholasmaniccia1005 Před rokem +2

    Nice, idk if you explained it really well or if after playing with references and coming back to an explanation was the final thing to make me understand this concept, but I feel like I finally get it.

  • @dylanjackson7325
    @dylanjackson7325 Před 4 měsíci

    concise and clear. thanks dude

  • @Ajcmaster
    @Ajcmaster Před 3 lety

    Great explanation Caleb! Awesome. Way to go!

  • @anon343
    @anon343 Před 3 lety +1

    Thank you for explaining the memory efficiency of references, I like to know why code is "best practise"

  • @magicdragon9621
    @magicdragon9621 Před 3 lety +4

    Wish I found this video sooner. After 4 hours of trying to understand this concept I finally get it haha. Thanks!

  • @iutubgugal5566
    @iutubgugal5566 Před 3 lety

    Thank you! This was well detailed and clear.

  • @gremjo8409
    @gremjo8409 Před 3 lety

    Great video! Exactly the explanation I was searching for

  • @AFourEyedGeek
    @AFourEyedGeek Před 2 lety

    Nice! Thank you for this.

  • @navaerick86
    @navaerick86 Před rokem

    you explain things the best ive seen. thanks

  • @arkapravaghosh4594
    @arkapravaghosh4594 Před 3 lety +1

    This was such a great video all sorts of confusion got cleared so well. Thanks brother.

  • @MrMcgrizz
    @MrMcgrizz Před 15 dny

    Thanks for the great explanation! I am new to C++ and needed to understand this, and also the part after 13:00 was very informative and useful!

  • @monkeyrobotsinc.9875
    @monkeyrobotsinc.9875 Před rokem +1

    You are a great instructor.

  • @marcellodelfiore1361
    @marcellodelfiore1361 Před rokem

    this video is actually fantastic, thank you so much, i appreciate your work, keep it up and good luck with everything :D

  • @heshansandeepa6387
    @heshansandeepa6387 Před 2 lety

    This can't be explained better than this. Top notch

  • @jacobpickos733
    @jacobpickos733 Před rokem

    Bro. You're a beast. This is just what I was looking for.

  • @ddimwhite4638
    @ddimwhite4638 Před 3 lety +2

    Bravo! Thank you.

  • @higiniofuentes2551
    @higiniofuentes2551 Před 9 měsíci

    Thank you for this very useful video!

  • @ChadTower
    @ChadTower Před 2 lety +3

    Love this video, he really does explain it far better than the course material in the 300 level undergrad course I'm currently taking.
    Also... LEEEEEEEEROYY JENNNNNNNNKINS

  • @aberateklehaimanot9804

    Thanks Caleb.you are an amazing teacher.

  • @SKMINSARR
    @SKMINSARR Před 2 lety

    I like the technique of your teaching. Really it's a great tutorial man

  • @Basedmarv
    @Basedmarv Před 2 lety

    10:35 troll joke made me chuckle out loud, great video!

  • @audiodiwhy2195
    @audiodiwhy2195 Před 2 měsíci

    Good tutorial. Thanks.

  • @ddkan_9982
    @ddkan_9982 Před 2 lety

    just perfect ! thank you!!

  • @krup9898
    @krup9898 Před 2 měsíci

    Thank you very much. God bless!!!

  • @jakubdzwigacz4563
    @jakubdzwigacz4563 Před 2 lety

    so far the best explonation i could find

  • @harismasoom6634
    @harismasoom6634 Před 2 lety

    i am in love with your teaching style.

  • @DonaldMurf
    @DonaldMurf Před 3 lety

    Thanks man. You helped me a lot.

  • @tomitomi7941
    @tomitomi7941 Před 9 měsíci

    Great video, thank you man

  • @jason27kboy
    @jason27kboy Před 3 lety

    Just finished the last series and I really hope this is the start of part 2

  • @Meridian-lk2fo
    @Meridian-lk2fo Před rokem

    Very well explained!

  • @akarcel
    @akarcel Před 3 lety +4

    Best caleb in the world 👍❤️

  • @pacocarrion7869
    @pacocarrion7869 Před měsícem

    Few basic examples to remember:
    void work (x){return x;} // No reference
    void work (&x){return x;} // Argument reference
    void& work (x){return x;} // Function reference
    void& work (&x){return x;} // Argument + Function reference
    int& a=b; reference variable to variables
    int&& ref=work(x); reference from function (without reference) to variable
    int& ref=work(x); reference from function (with reference) to variable

  • @thatgirl7650
    @thatgirl7650 Před 2 lety +1

    Thank you so much ✨

  • @ECEPAZHANIMURUGANSIVAP

    your r great... such a simple and clear explantion /////

  • @petarvico1757
    @petarvico1757 Před 2 lety

    Great video!!!

  • @wildLeaner
    @wildLeaner Před 9 měsíci

    Thank you well explained

  • @hamdansiddiqui3294
    @hamdansiddiqui3294 Před 26 dny

    exactly what i looking for!

  • @lucasmuller7179
    @lucasmuller7179 Před 2 lety

    "But no... you just got trolled" I almost spit my coffee

  • @erfanelmtalab3426
    @erfanelmtalab3426 Před 3 lety

    I love the way that you write & diffrent in every time😂😂

  • @Captain_Rhodes
    @Captain_Rhodes Před 3 lety

    Nice video. I like how you dont write any code on a computer. makes it better

  • @nicolascrespo4643
    @nicolascrespo4643 Před 2 lety

    Thanks a lot!

  • @OpheliaSHolmes
    @OpheliaSHolmes Před 3 lety

    Thanks for the tips

  • @TomtheMagician21
    @TomtheMagician21 Před rokem

    At 13:30, what if you did like &b = &c? Would that work or can you only assign b directly and not it's address?

  • @AshShawwa
    @AshShawwa Před 10 měsíci

    After watching this video I have two things to say: 1 - thank you, your explanation is heaven sent and 2 - after your Leeroy Jenkins comment, I gotta ask. You play WoW, because if you do were gaming 😂

  • @SebleBeyene-jp8hp
    @SebleBeyene-jp8hp Před měsícem

    I hate this dude when i was noob but still want to see this dude

  • @7s9n
    @7s9n Před 3 lety

    Thanks caleb 💛

  • @okkami676
    @okkami676 Před 3 lety +1

    QUESTION: 7:58 to 8:04....doesn't "int &x" at the function refer to the 'address' of 'a' rather than the 'value ' of a ( ie '5')? That is, when we call the function, aren't we passing in the "address of a" rather than the "value of a"?

    • @masheroz
      @masheroz Před 2 lety

      How I think of it working is: when you call work(a), internally the program is saying int & x = a; and then doing the things on x. I need to retrain my brain on how the function arguments work from my Java days, but the 'int' is always correct, and says that the function expects an integer. If it is 'int & x', it will get a reference to an integer, and if it is 'int * x' it will get a pointer to an integer.

  • @sadatshahriar2090
    @sadatshahriar2090 Před 3 lety

    This is awesome !

  • @marcusantenor793
    @marcusantenor793 Před 5 měsíci

    there is no love it button, so i will type. Love it, thanks a lot.

  • @jalalhamza1344
    @jalalhamza1344 Před rokem

    Helped some what keep it up

  • @uttamkarmakarece3534
    @uttamkarmakarece3534 Před 2 lety

    Well explained

  • @NikhilSharma-jj6bx
    @NikhilSharma-jj6bx Před 3 lety

    Dude you are on fire today.

  • @isaacchen3857
    @isaacchen3857 Před 3 lety

    "Maybe that's a bit more depth than you need for this introductory video"
    Nope. Not for me, at least. That last detail you went over was super helpful. Thank you for the great video!

  • @codingwithflavio8534
    @codingwithflavio8534 Před rokem

    thank you for this

  • @smrtfasizmu6161
    @smrtfasizmu6161 Před 2 lety

    I got problems but I had problems with understanding reference. It seems to me like reference is sometimes treated as a memory address but then you can also treat them as normal variables. When it comes to pointers it is clear when that you always have a memory adress and if you want to see what is on that memory address, or change what is on that memory address, you deference the pointer by putting a * in front of the pointer. These references are a little bit confusing because they sometimes act as pointers and they sometimes act as normal variables. I don't see why I can't just replace references with pointers. For instance the function swap would go like this.
    void swap(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
    }
    Also, when you use pointers as arguments of a function you know you are passing memory addresses to the function so you expect that the function might change the variables whose addresses you are passing. I find pointers more clear and understandable than references.

  • @rabbi8453
    @rabbi8453 Před 3 lety

    Thanks Caleb

  • @Miyano_Shiho4869
    @Miyano_Shiho4869 Před 2 lety +1

    So basically a reference is like a desktop shortcut for an exe application.

  • @jeyosman1
    @jeyosman1 Před rokem

    how can we use pointer to reference like this (int *& a)

  • @mrmoody915
    @mrmoody915 Před 18 dny

    Your the best bro

  • @TomtheMagician21
    @TomtheMagician21 Před rokem

    This is a great video and I understand references and pointers now (from your other video).
    However, I could change the variables that were passed in as parameters even without references.
    For example (in C++ still because I've been learning for 2 days so far lol):
    void Swap(int x, int y)
    {
    int temp = x
    x = y
    y = temp
    }
    And that works fine so 🤷

    • @flyingspaghettimonster8612
      @flyingspaghettimonster8612 Před rokem +1

      its not the same as he said in this case x and y would be a copy of the values you passed, the variables outside the fuction will still be the same even if you change the values in x and y

    • @TomtheMagician21
      @TomtheMagician21 Před rokem

      @@flyingspaghettimonster8612 Oh ok thank you, would I need to create a reference inside the function then and then change the value of that reference? That's pretty cool

  • @KaustavMajumder
    @KaustavMajumder Před 3 měsíci

    Subscribed! 🙂

  • @Ab-zq2ye
    @Ab-zq2ye Před 3 lety +2

    Young and Intelligent Your the best teacher Caleb.
    From Ethiopia

  • @xcalimburdeveloper3929
    @xcalimburdeveloper3929 Před 3 lety +5

    Wait, is this C++ series part 2

  • @MikeLGMFX
    @MikeLGMFX Před 3 lety

    I love this 😇😃omg so useful

  • @keshavjha2641
    @keshavjha2641 Před 3 lety +1

    Hey can you make something on typescript

  • @isaiahdawkins1870
    @isaiahdawkins1870 Před 2 lety

    Dude you own.

  • @mellow_frequencies
    @mellow_frequencies Před 2 lety +2

    You make learning this like 10 times more fun, i apprecieate it!

  • @christianalvarado528
    @christianalvarado528 Před 6 měsíci

    4:28 I actually thought all this time that this were 3 completely different things. And it's just a variation in writing.

  • @MrKurdishFreak
    @MrKurdishFreak Před 2 lety

    perfect!

  • @karimmuhammad7051
    @karimmuhammad7051 Před 2 lety

    this is mean, reference is not a new variable refer to specific place in memory?
    it is the variable which it refer to??!!
    so this is not add on size of memory one place!
    right?

  • @skypuff
    @skypuff Před 3 lety +1

    This is FUN-THEN-MENTAL (fudamental)

  • @sabahoudini
    @sabahoudini Před 3 lety

    Is there a playlist for these videos so I can watch them in order?

    • @hasandarwish6361
      @hasandarwish6361 Před 3 lety +1

      you can just enter to the channel and then go to playlists, so you can find it as a playlist of arranged videos

  • @jpenneymrcoin6851
    @jpenneymrcoin6851 Před rokem

    hey beginners - if you want a simple explanation, here it is.
    when you name a variable, the compiler makes a table with that variable name in one column and a number in another column.
    the number is what you get when you use a reference.
    the number is an address in whatever memory space is in use - you don't have to worry about that, the linker handles physical placement.
    once you have the number stored, you can write to or read from memory.
    now, slightly more complex is that you can also do pointer math and move around in memory on your own, reading and writing things that may not have a variable name associated with them. So you can say "go to the spot where variable a is, then advance 2 bytes in memory and write a 3 there"
    that allows you kind of direct access to the memory space.
    there you go - 15 minutes saved for those of you who don't need so much hand holding.

    • @draqaah
      @draqaah Před rokem

      He what did he type looks 8 or & idk what he type

  • @msingizanengwenya6707
    @msingizanengwenya6707 Před 3 lety

    IS THE USE OF "&" SAME AS WHEN YOU USE IT I EXCEL?

  • @ayushwagh2743
    @ayushwagh2743 Před 6 měsíci

    I wish i Saw this video at the beginning of the semester😭

  • @mohamedeljabri4970
    @mohamedeljabri4970 Před 2 lety

    Frankly it is very difficult to give my comments to anybody but you deserved highly top and your flag is great
    I am still can't find thanking words for long time being misunderstood.

  • @-kindredeternalhunter9907

    12:05, I still don't get it, what if i just write "void swap (x,y)" in the first line ?
    btw, ur vid is just so clear, i can understand most of it quite ezly, i just dont get the idea of benefit when using it and the question above, why should i assign reference to a var when i can just call it directly ? Thank you :))

    • @jennims2885
      @jennims2885 Před 2 lety

      Hi, I may not be the best person to answer but I'm gonna try...
      So, if x and y are global variables then you can easily do that, but if the function is separated from the variables and they are not global then you need to pass them through parameters, that's where the references come handy because you can actually change the variable itself and not just make a copy when you call the function. Hope this helps

    • @-kindredeternalhunter9907
      @-kindredeternalhunter9907 Před 2 lety

      @@jennims2885 so ur idea is if i pass (int &x) what happen inside the func will change x actually, and if i pass (int x) , func will only use x for calculate and after the func is called, x return to its before func calling value ?

    • @jennims2885
      @jennims2885 Před 2 lety +1

      @@-kindredeternalhunter9907 yes, the function just makes a copy of the variable to use it inside the function, it will not change the variable itself; once the function ends, the copy gets erased. So for example, if you want to make a void function that can't return anything you will not be able to change the variable itself, the only way to do so is by using references.

    • @-kindredeternalhunter9907
      @-kindredeternalhunter9907 Před 2 lety

      @@jennims2885 finally i got it, thank you !!

    • @jennims2885
      @jennims2885 Před 2 lety +1

      @@-kindredeternalhunter9907 Glad I could help ^-^

  • @user-dy1vf7lu3i
    @user-dy1vf7lu3i Před rokem

    Thx

  • @juniorlucival
    @juniorlucival Před 3 měsíci

    A reference (ref) does not occupy memory space, cannot be null, and cannot be modified. Attention!!!

  • @lator1941
    @lator1941 Před 2 lety

    I understand it now :-)

  • @ichan2607
    @ichan2607 Před 3 lety

    Thankssss

  • @TheMCMaster
    @TheMCMaster Před 2 lety

    what a mad lad