Pointers in C / C++ [Full Course]
Вставка
- Опубліковано 5 лип 2024
- Pointers in C and C++ are often challenging to understand. In this course, they will be demystified, allowing you to use pointers more effectively in your code. The concepts you learn in this course apply to both C and C++.
✏️ Course developed by Harsha and Animesh from MyCodeSchool.
🔗 Read all about their amazing story here: www.freecodecamp.org/news/myc...
🔗 Check out the MyCodeSchool channel: / mycodeschool
🔗 Check out the MyCodeSchool website: mycodeschool.com/
⭐️ Course Contents ⭐️
⌨️ (0:00:00) Introduction to pointers in C/C++
⌨️ (0:10:29) Working with pointers
⌨️ (0:22:05) Pointer types, pointer arithmetic, void pointers
⌨️ (0:33:01) Pointers to Pointers in C/C++
⌨️ (0:42:21) Pointers as function arguments - call by reference
⌨️ (0:56:36) Pointers and arrays
⌨️ (1:05:18) Arrays as function arguments
⌨️ (1:18:10) Character arrays and pointers - part 1
⌨️ (1:32:49) Character arrays and pointers - part 2
⌨️ (1:42:49) Pointers and 2-D arrays
⌨️ (1:55:07) Pointers and multidimensional arrays
⌨️ (2:11:50) Pointers and dynamic memory - stack vs heap
⌨️ (2:29:14) Dynamic memory allocation in C - malloc calloc realloc free
⌨️ (2:36:48) Pointers as function returns in C/C++
⌨️ (3:02:01) Function Pointers in C / C++
⌨️ (3:13:57) Function pointers and callbacks
⌨️ (3:29:16) Memory leak in C/C++
⭐️ Special thanks to our Champion supporters! ⭐️
🏆 Loc Do
🏆 Joseph C
🏆 DeezMaster
--
Learn to code for free and get a developer job: www.freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news
I spent decades writing C/C++ code daily, and the best bit of advice anyone ever gave me stuck with me that entire time relating to pointers.
Not sure if it is in this video, as I didn't watch it all ...
When you are reading the declaration of a C/C++ variable, read it right to left in English and the meaning is obvious
e.g. What is a variable defined as ... int * const *
Backward .. it is a Pointer to a constant pointer to an integer
e.g. What is a variable defined as int [] **
Backward .. it is a Pointer to a Pointer to an Array of Integers
Easy :)
This is amazing, thank you!
Great tip, thank you.
Love you ❤
It is amazing how just a simple change at how you approach a problem makes things click.
This is actually really useful. I finally wrapped my head around pointers and this helps solidify my learnings. Thanks Tony! I’ll remember this comment of yours when I’m a super C++ dev 😅🥲
Everytime he says thanks for watching, I so desperately want to thank him for teaching. You're a legend, Harsha and you'll never be forgotten 🙏
couldn't agree more
the guy single handedly taught me more about pointers than my teachers at college.
Wait… did bruh die? 😟
@@Chavez3d yup was killed in road accident.
@@manoj6247 :( that makes me sad
Note about doing stuff like:
int* p;
It kinda make sense to put the star next to the data type... because it's an "Int pointer" named p. This is fine as long as you declare only one variable per line. Some people like to declare multiple variables at once (I don't recommend doing this but it's doable...). If you do so, only the first variable will be a pointer:
int* p1, p2;
p1 will be a pointer to an integer... But p2 is an integer. This is why you should put the asterisk on the variable name instead:
int *p1, *p2;
nice fact
Thanks helpful little fact
hmm good stuf 😉😉😉
at 28:00 after defining p0 , i am unable to print p0....and also upon dereferencing it is giving weird outputs....someone please tell...
you saved me a LOT of time
RIP LEGEND LORD HARSHA. Your contribution to my life is way beyond words.
I feel smarter by just clicking on the video.
You'll feel like Einstein after completing the video!
Hi
Please create video on C programming for beginner 😀😀😀
You'll feel like God after watching all of their videos!
@@everydayintroswithouttext5012 Ok🥰😊🤘👍
You are not alone... these are not ordinary topics. I feel humbled
This was created almost 8 years ago! Still not outdated. Best explanation on pointers ever
So far
How?
C tutorials never become outdated
K&R was published in 1978 and it is still not outdated
The guy who created this is a legend, read about him, I learnt pointers and data structures from this guy almost 6 years ago
Thank you, legend. I discovered this video years after your friend and co-teacher passed, but his and your legacy lives on. Thank you for everything. Much love from Nairobi, Kenya. May he smile with the angels.
I completed this course in a week and enjoyed learning it all. Harsha is the best guru of C and C++ programming and I learned a lot from him. Harsha why so OP. I know that he is no more and he died on June 15 2014 at just age 32 but I know that he made underdogs the winner finally and inspired others to make many more Brilliant Programmers from whole the world and not just INDIA.
It took me a bit longer than a week to complete.
@@alvintayedzerwa8954 the longer it is the best it is, fun fact is I am implementing these on my program codes as of my daily schedule and still revising it in different intervals to be updated and strong in the basics.
I miss this guy, whom I will miss him throughout my life, who helped me passing 3rd semester in University, in Subject Data Structures and Algorithms.....
Love you My Code School...
Love you Free Code Camp Org...
Three and a half hour video on just pointers
We are going to take over the world after watching this
hahaha
Ur epic😂😅
this or generate so many runtime exceptions that the world we'll never be the same ever again. ahaha
*Points to you* delete...er.... delete [] . Not 'We'... I'm going to take over the world.
i can feel the power growing in my hands :D
It's amazing that this is free. These concepts are explained so well and clearly. Thank you!
Yes, they are wonderful people, and the curriculum on their website has been really helpful to me ❤❤
I must express the greatest possible gratitude for this course. The material is comprehensive, well-thought out and superbly structured. All of my implicit questions (i.e. "I know that I don't understand something, just not know what") are vanishing rapidly, and I haven't even finished the course yet! Thank you, thank you! To listen to this course was probably one of the best decisions I've made as a first year in university.
If you're as confused as me after checking the size of A in the sumOfElements function (around 1:15:27) and finding that it yields 8 instead of 4, note that in x64 architectures pointers are assigned 8 bytes. Since A is technically a pointer in that context and that's why you'll get 8 bytes of size
thanks
Thank you!
Thanks!
The size of other types will also change dependent on the settings of the compiler. Even comparing with the same CPU, some of these are simply choice and this is why we have the "size of A" function to check that they are acting as expected. For example a "long long int" default could be 32 or 64 or 128 bits depending on language compiler and target CPU, and you can manually change this compiler configuration. This is because you may be compiling the same source code several times for different CPUs. ie for some cases int is 16b, short is 8b, and both long and long long types are 32; for clang and gcc default for AMD64 is int=32 and long-long=128b, but you could add a compile time flag to change the int to 64b or everything to 32b.
Float names are more standard so a double is 64bit everywhere I have looked. But the "long double" can often create a mistake, some interpret long-double as IEEE-754 float128, some simply ignore the long and use 64bit double; and others interpret long-double as an 80bit "extended precision" float; 80bit matches the x87 floating point hardware unit that is combined with some CPUs.
And a few terrible implementations (*cough*python numpy*cough*) have been known to actually use 80bit when you use explicit "float128" or "float96" keywords in your source. These 80bit floats may actually be padded with zeros to use 12 or 16 bytes of memory (96 or 128bits) to keep the typical 4 or 8 byte alignment of memory addresses and cache lines, but the x87 math unit only uses 10 bytes.
subscribe and watch: ua-cam.com/channels/E6t_LLEfDXfOO6XDgD3u2A.html
This guy is one of the best instructors I have heard on the web. Speaks very good English and explains things in a very logical, easy to follow manner. Superior instructor. Great job!
@Tongue- tied7 checkout his channel ua-cam.com/users/mycodeschool
His English is perfect
He was one of indias greatest coders and a genius, he was fluent in multiple languages and was the red and highest rated coder from india
dude was truly a prodigy, #RIP
@@zaks7 What happened to him?
@@deltag0ny224 He died in a car accident, search about humblefool.
But i was wrong, this video is by his partner/best friend who is still ok.
finally I completed it... Pointers topic explained beautifully ...Thanks a lot .
Its Definitely the best explanation available on youtube period.
I agree, and ive seen a lot
I have been working as a software engineer in very big semiconductor company and implement functional safe programs. Still i came here to learn something more about pointers and i wasn't disappointed.
Thank you!!! I've been trying to wrap my head around the concept of pointers for the longest time, and this video definitely makes it stick a lot better. When I was taking my programming courses, my instructor kind of just brushed over this topic, but this requires a deeper, more in-depth
approach.
Very clearly explained. I did C programming in 1990 as a part of my university project (I am Mechanical Engineer). I thought that everything is forgotten, but when I watched this video, everything resurfaced as if I had studied all this just yesterday.
Thank you so much! I have completed the first hour and learned a lot! Thank you sir!!!!! God bless you all and your team for providing free content with outclass quality! Please keep up the good work. I am learning programming for a business project, and haven't found any better video lecture so far. I even tried some payed courses but this is simply on the next level. Thank you again!
This video is amazing - a hidden gem of UA-cam. I learned more about pointers in 30 mins than in hours and hours of reading in textbooks and SO.
This channel helped me a lot in clearing my fundamentals, I'm so happy to see that the code school is getting the recognition it deserves .. RIP legend
Legends never dies.......
Such frienship is immortal....
That is what the real meaning of love is.......
🙏🙏🙏🙏🙏🙏
This was very helpful, thanks!
Here are some minor corrections:
- At 0:41:00 : in the discussion of pointer-to-pointer, variable r should hold the address of q (=205), not the value of q (=215).
- At 1:28:00 : print(c2[1]) is only possible via printf(c2 + 1) and this outputs 'e', not 'l'.
yes yes yes yes
I agree with you
omg yes !
came looking for this comment to confirm if I was right
Omg, yes! That's why I had to watch that segment about pointer to pointers twice before finally getting it.
I am studying computer science in school now. And we have C language in our syllabus now - definitely UA-cam has taught me way more than my school teachers. And now I am proceeding to learn the intermediate of C language by learning the concept of pointer. I have already seen the first chapter of this video and have found it quite useful. Thanks to the person who have explained every thing on that chapter in an easy way.😀
So far, an hour into this excellent tutorial and no ads.
I have already watched this series on mycode school many times earlier, and I can approve, best on the entire internet.
I still remember in 2013-14 these were the set of videos I watched to learn data structure and algorithms. And these were so intuitive.
loving the explanation so far . i really wish they had this beginner to advanced videos of the entire c language . it would have been soooooooooooooo helpful.
This man was a legend amongst competitive programmers! #RIP Humblefool!
RIP? The guy sounds so young, what happened? how did he die?
@@waitwhat3547 the video that you see here is roughly 7 years old. Mycodeschool was a team of devs from Microsoft and most of these were made by Harsh Srinanyana aka Humblefool. He was the highest rated programmer on topcoder India. He passed away in a tragic road accident in 2014.
@@Ash-em5pm oh no - is he the one that taught us with this hand written illustration?
@@TT-ud5gf not this one. This video and other public videos on UA-cam made by mycodeschool are by Animesh, one of their cofounders. After the tragic death of harsha, he was shock trodden and lost courage to upload more videos. The last video he uploaded was in 2016.
You guys made me very sad
This vidio alone carries my entire programming semester
This is the best series on pointer I have found. Its verbatim to my class workbook in regards to the depth of concepts but way easier to understand then looking at written code in a book with terrible explanation. Thank you!
The best video on pointers on youtube. Please whoever visits this video do watch it. He has convered everything that we need to know. 100% worth watching whole video without skipping.
Thanks a lot for uploading this video.
Read the article about the tragic story of Mycodeschool and I felt really sad reading the story behind it.
But, at last, they have inspired me to work hard and be passionate about coding.
I Hope Animesh is doing good in his life and RIP brother Harsha(Humblefool).
watched 5 years back. still worth to watch. missing content from mycodeschool.
Thanks very much for providing this easy to understand and comprehensive account of pointers, datatypes and memory allocation. The importance of the type of a pointer has been missed in other accounts I've read. So when you increment a char pointer it increments by 1, when you increment an int pointer it increments by 4. All makes sense once you've watched this....
I love that you have dedicated so muxh time to this. Pointers has been the point where I have dropped programming so many times.
I can survive without it, but a proper walk through is great.
best video ever. Keep doing this kind of videos, where you get inside of difficult topics and make it easier to us. Thanks FreeCode.
I really needed to learn more about pointers, thanks free code camp❤️
This is brilliant! All case scenarios, in depth explanation... Brilliant! Thank you
I came here to learn about pointers, but got to learn more than that which included how C++ organizes stuff in the memory. This is a very good crash course as it explores different use cases of pointers and has sufficient depth in each topic.
I woke up here
An absolute knowledge treasure in understanding pointers in C!
This was very helpful. It helps fill out some gaps while learning structures, and other concepts. Thank you very much to the team who made this. 👍💪😎🔭📡
I have been trying to wrap my mind around pointers for a while now. This video is priceless! Thank you! Thank you!
I was just working on a project having trouble understanding pointers, I needed this. Thanks.
I'm at 1:05:27 and I have already started fantasizing about impressing class girls lol😁😁
Thanku so much
First of all really these are greatest videos to many students, where several things were not understood, watching these videos make someone getting enlightened, i still remember I came to know about mycodeschool, and had recommended to several people but they didn't watch, but i kept watching, later I see there were no more videos, I was completely surprised what happened why this got stopped all of a sudden today only i came to know about the story. Really this is sad to know, but the work will remain as standalone masterpiece, with little time they made this impact if it had continued it would made an astonishing impact to several peoples around world. Thanks Harsha I wanted to thank several times but came to know about your story today. Thank you very much.
the best explanation of pointers on the whole youtube. Brilliant content.
What a gifted teacher!
I know this stuff, but it was nevertheless a pleasure watching the entire video.
I have subscribed mycodeschool since 2015 and still use it to revise those concepts...thank you mycodeschool ❤️
This is the best teaching I have ever seen, and it really "free" a lot of problems in my brain.
i've been struggling finding the best explanation for pointers but this video really is the best. props to Harsha
very informative , detailed explanations which are very useful to understanding this difficult concepts
Thanks!. Great video to tighten memory handling. Goes right to my queue. But better yet the history behind. Gratefulness to myCodeSchool and glory for Harsha. Saludos.
I’m only 20 minutes into this video but I already understand a lot of things that made no sense to me before. Thank you so much for this video. The way you explain things is so easy for me to understand.
In pointer to pointer concept : Value stored in "r" is 215 which I guess should be 205 if not mistaken 🙂BTW very well explained ! Use of pen and diagrams really helps to understand things better. And course content is very well covered. Lucky to have this in my library .🙏
yes, value stored in r should be 205 but not 215
Harsha is the boss. He explains it very well.
I have watched his lectures 2 years ago and they are in my mind yet.
Actually Animesh was the presenter in the video while Harsha was far good in his coding concepts and thus they both were a very good team.
Thank you for making this, this video was so helpful in a lot of different ways. Amazing content!
These legends recorded this video back in 2012. When learning to code on YT was barely a thing. Way ahead of their time.
No one could ever teach me pointers like you! You are the best!!!
MyCodeSchool made their last upload 4 years back. But today also their content are outstanding.
llo, I am from Peru, I am 25 years old and I have been learning programming for several months.
And I wanted to understand pointers in C++, and this is the best VIDEO explained in detail that I found,
Thank you so much!!! Now I even know how memory is managed in C++. Thank you!
The pace could not be done any better. This is simply the best video on the subject
Thanks Quincy for this course. I know you're behind this great idea of bringing their videos together to make this all-at-one-place video.
who is Quincy? btw this gold video is 8 years old made by animesh sir
@@sra9an938 Quincy Larson is the founder of FreeCodeCamp
@@gamoholic7653 oh yes thanks, I got to know that little late
As a python programmer the concept of pointers was the only thing which was difficult to wrap my head around. After watching only the first hour of this video I now have a much better understanding. Thanks!
You're welcome
REALLY LOVING THIS BEGINNER TO ADVANCED VIDEOS , I MEAN FULL COURSE VIDEOS . I HOPE YOU COME UP WITH MORE OF THEM, don't get me wrong one shot videos are great too but this helps us to understand the topic in more depth
My god, this is the best tutorial to watch if you want to fully understand pointers.
Thank you for this amazing work!
Thank you so much for this great tutorial. It really helped me understand the topic. It also makes me appreciate languages like C# that have garbage collection.
RIP. The legend he was. Humblefool.
Is he dead ?
@@TheTariqibnziyad who died?
@@TT-ud5gf Harsha, the guy who was presenting the video 😢
@@TheTariqibnziyad unfortunately it's been very long now. He was one of my initial gurus.
@@ShubhamSharma-tn3wm where is his page? How did we lose him?
the explanation of function returning pointers was the best. explaining by actually showing how the memory is allocated in stack was so good. thank you so much.....
One of the best if not the best courses I've seen on UA-cam, the explanations and examples are excellent. I'd recommend this course for anyone who programs, not just people who program in C/C++. You learn so much about how programs work and how to manage memory.
*Pointers were one of the topics I used to hate in school. I watched like 5 minutes of this video and I am liking the topic already. I have saved this video to my playlist and will watch this completely after my work today.*
did you watch? do you know pointers now?
Have you learned pointers at school? We were only taught some basic concepts such as variables and cycles, and also some algorithms
@@geutk4162 Nope. I just relized I forgot to watch this video after work that day!
@@aravindkramesh haha
Well, it's never too late
Their course was the first course i did 5 years ago for pointers and data structures. It was really great course.
This was one of the best explanations of a topic that I watched. You really are a great teacher. Good Job!
This video was truly excellent. I was able to fully understand the concept of pointers and I am grateful for the clear explanation. It is by far the best resource on this topic that I have found on UA-cam.
well done! your usage of a tablet/pen helps a lot to visualize concepts like stack, and heap.
So I have a job interview an hour later. Came here to refresh my concepts on pointers and memory management. My only regret is why didn’t I finish it earlier. Awesome content. Much love to mycodeschool.
Did you get it :D?
@@piesekleszekpiesek Thank You for following up 😄 I have completed three technical viva. Waiting for the call to final management viva. Let's see what happens. 😄🤞
@@monemahmed6830 what happened at the end :)?
One of the best C++ tutorial I have ever seen. Thank you so much.
I presented my final project and this video was fundamental for me to code it.
Thanks a lot
If mycdschl continued their course it would be the most subscribed channel in cs courses.
Incredibly valuable lesson! he had a talent for clear and thorough explanation which is something that is rare and precious. It saddens me to learn of his passing... Rest in Peace
very shocking!! RIP
1:32:51 In the while condition we're dereferencing c so that it can identify the null character and in the printf we're doing the same so that printf fumction can print the string .. and c++ is just moving the pointer to the next character(by default it point to the h of hello) so that loop can continue.
Very very good video. Very well done and was 100% worth the 4 hours. I would recommend this to anyone trying to learn Pointers and the basic theory around it.
Pointer is a vital concept in understanding a lot of programming languages, for example, in JAVA, even though there is no "pointer" concept here, but the reference variable assigned to a new constructed instance is the interpretation of pointer in JAVA. So I think it can be kind of hard for people without C/C++ background to learn JAVA virtual machine, memory management etc.
i would definitely donate this channel when i start earning.
Thank you for the wonderful explanation. I have started watching many videos but could not complete them. I watched this video completely and this has cleared a lot of confusions about pointers and application memory management. :-)
Looking forward for more such videos in future.
This course has some wonders ! Thank you. Appreciate you time for this.
finally finished lecture ...My college takes atleast $50 for this course and only taught starting 30min of this lecture
Harsha was a legend. Started my coding from his channel.
What do you mean, was?
@@johnnycincocero He died in a car accident 😭
@@johnnycincocero Please read the story put up in description link. Its an amazing one.
@@jatinthakur4252 omg
@@jatinthakur4252 Damn. Sorry to hear that.
Each and every word is priceless and music to our ears . Kudos to the instructor .
Thank you sir, it was very useful to listen to you. I learned the concepts of dynamic memory, memory leaks and function pointer, and strengthened my knowledge of pointers.
Thank you, thank you, thank you. The concept of pointers has been a very confusing concept in my journey to learn to code in C/C++. This helps a lot!!! Thanks.
What about recursion 😂
@@thethorff5881 is that really hard
Animesh and Harsha, you both are all time great for me ❤️
Great Course! I've finished it now and I can say I am more confident working with pointers than ever before. Many thanks for the work to make this explanation easy to understand.
The next course for pointers in C i wanna check is titled "Pointers in C for Absolute Beginners" that was uploaded on this channel.
this is probably the best video ever made on pointers.
Studying for an exam to get into CS and this has helped me a lot. Thank you very much
good luck 👍 🍀
i did not mean this sarcastically btw lolol
@@missgirl8210 haha its all in good spirit!
I can't believe I finished the whole thing. It was very informative!
Thank you! Amazing job! Eventually understood properly pointers.
This guy has the talent of teaching, absolute awesome explanation!
you know it's gonna be a good video as soon as you hear the indian accent , god bless everyone that teaches us something important