Check out the hands on guide - ruclips.net/video/u5AH2Wn6h1o/видео.html Get notified of my upcoming C/C++ Courses - www.codebreakthrough.com/upcoming-c-cpp-courses
I thought of an analogy for when you would use pointers: Say you ask a friend to do something regarding an essay you have on an online cloud (calling a function), but to do so, you would need to send them the essay (the arguments). You can either: 1. Send them a copy of the essay via email/message. This would give them the essay as it was when you sent it, and any changes will not transfer between versions. This means that you and your friend would only be able to see each other's essays if you were to directly communicate with each other. 2. Send them a link to the spot in the cloud where the essay is in the cloud. The link itself wouldn't be the essay, but they would be able to find the essay by following the link and any changes made by either you or your friend will be visible to anyone that looks at the essay. Option 1 would be like directly inputting the variable, while option 2 would be like using a pointer. Is this right?
8:27 was the point of no return where i crossed into learning about pointers all thanks to you Caleb! I love your explanation videos! Thank you for making teaching and explaining these concepts!
awesome! in my class they are teaching us about pointers and new, delete, null, which seems like the old and harder way of doing things, but thanks for mentioning it in your video! most ppl skip it because its not used frequently but when we have to follow a curriculum from univ is hard to avoid and find info about those. thank u!
highly recommended video if anyone didn't get the pointer concept or don't know the use of a pointer, watch this video. Really helpful for me and thank you for the excellent explanation.
int* x seems more readable to me than int *x - it makes it more clear that it's an "int-pointer" ie. its own type, distinct from int. I know there all kinds of arguments about this but I don't care because I'm always right.
You should seriously be a professor or something. You literally made this so much easier for me to understand and you're the only RUclipsr I can find that teaches before coding which is why I only watch your videos lol
This guy just explained pointers the best I've ever heard it explained........... and I'm still confused. lol Whoever was the architect of doing it this way in the beginning needs to be tarred and feathered.
I don't want to say other lessons bad, it's the best of 5 which I saw about pointers in recommends, and... really understand what it is and how to use it after watching. But, why is here low number of likes, not even 500. Everyone, put likes, this lesson deserves it!
I hope you are making millions off these videos because you are helping millions. If you started a goFundMe and asked all your viewers to donate a dollar we would all do it and you would be rich
i had to learn this in the lecture hall equivalent of a hot-locked car, and picked up nothing. I was really scared, but this saved me. And I love CS, so learning this and thinking of how this can improve my code gives me tingles :D
Caleb, you figure out what might be difficult to understand and you explain it very clearly. You are a great teacher, keep up the good work! Thank you very much :)
Pointers are great for "hacking" other software, if it does not have an api. You can find out the memory addresses and read the data of other stuff and use it in your own software. Pretty sure it is violating some policys in a way, but sometimes it is an unfortunate necessarity. It is basicly the same as using cheat engine. Said differently, you can use a tool like cheat engine to find out memory locations and use this in your programs for whatever you need it.
I heard someone say you needed points to program a game, I had him explain to me what pointers are but I didn’t understand it or why I would need it, thanks for the great video
I was really confused about the meaning of the asterik when using pointers, and how it can be used in a couple different ways. This video really helped clear that up. Thanks!
I learnt more about pointers after learning C from the K&R textbook and Michael Daconta's C++ Pointers and Dynamic Memory Managements. Kernighan and Ritchie explain pointers very well and Daconta's book is highly recommended for furthering your knowledge.
Is it possible or allowed to define an integer pointer as int* y = &x as opposed to int *y = &x? I know c++ ignores spaces in most situations, but does asterisk placement make a difference in that statement?
I like that you use a white board, I've had difficulties following other coding teachers on youtube who only use the IDE while talking about these topics. I find the whiteboard much easier to follow possibly because I'm a visual learner. You also do an amazing job dumbing down concepts that makes them easier to understand.
"Only use pointers when you have to!" My professors giving me starter code for an assignment: I'm gonna pretend I didn't see that Me, who hasn't touched C++ all summer: tf does this asterisk do again?
My professor constantly reminds us that he has a doctorate masters wizard of oz Jedi degree in computer science and yet Caleb here, explains pointers way better than his bald a$$. Thank you, Caleb.
You just made pointers click. it's a type of it's own, just like an 'int' or a 'string'. Rather than putting 'int' the pointer variable is * with a prefix of what variable it is your pointing to... The you give it a name and assign it to the variable you're pointing too.
At the end of the video you started firing them little neurons I got, then said “but let’s not get into the weeds we’ll just stop here” 😭 good video though, I wanna move from Java to c++ and this was one of the first videos I watched, so thanks.
There are no uses for Pointers in programming. Simply use references when passing to void functions instead. Also if you do not free or delete your pointers their address is locked in the memory free space preventing other programs access to that memory space. So if your machine stores many pointers or repeated pointers that use a different address of these locked addresses they will build up and it will crash and this is exactly why Chrome crashes. They can run you out of memory.
In general, pointer is a type of a variable that stores a link to another object. In C and C++, the link is the address of that object in the program memory. Pointers allow to refer to the same object from multiple locations of the source code without copying the object. Also, the same pointer variable may refer to different objects during its lifetime. A similar, more restricted type is a reference. This section is incomplete Reason: restructure the article Creation A pointer is declared just like a variable but with * after the type: - int* px; This is a pointer, which can point to an integer. The pointer is not yet initialized, therefore it points to an undefined location and any access to it is undefined behaviour. What the statement did behind the scenes is to reserve a memory area large enough to hold a memory address on the given system. Notice that so far we didn't reserve any memory to hold the integer object that the pointer will point. Using pointers Assignment and access of pointers: int a = 1; int b; int* px;
px = &a; /* point pointer to variable a */ b = *px; /* copy value where px points to into b */
if you're initializing the variable *y and setting it to the address of x (&x), why does that same *y call the value at that address and not the address itself when you use it later in the code, since you set it to the address in the beginning? that seems inconsistent to me
Oh my god! I luv your explanation of pointers! My professor at school is so confusing so I had to go to youtube to find a better explanation. Your video at explaining pointers is very clear!
This helps a lot. I am taking a college coding class and when we just started talking about references and pointers it was confusing. This teaching series is helping a lot though, thank you! Very fun to watch😊
Digit does'nt imply base 10 at all and never has. If you look up the dictionary meaning of digit, it used to be an ancient method of signifying a unit quantity.
Nice! Thank you! I guess that is why people prefer to declare with int* y instead of int *y to avoid confusion the only thing i dont like about this video is the fact that you use blackboard it hurts me soo much haha
So what's a use case where a pointer would be necessary? If I understood correctly all the examples you are giving here could also be done with references. In fact, you used the same examples in the references video.
Check out the hands on guide - ruclips.net/video/u5AH2Wn6h1o/видео.html
Get notified of my upcoming C/C++ Courses - www.codebreakthrough.com/upcoming-c-cpp-courses
I love how casually this guy speaks. Almost like a friend sharing notes :)
I thought of an analogy for when you would use pointers:
Say you ask a friend to do something regarding an essay you have on an online cloud (calling a function), but to do so, you would need to send them the essay (the arguments). You can either:
1. Send them a copy of the essay via email/message. This would give them the essay as it was when you sent it, and any changes will not transfer between versions. This means that you and your friend would only be able to see each other's essays if you were to directly communicate with each other.
2. Send them a link to the spot in the cloud where the essay is in the cloud. The link itself wouldn't be the essay, but they would be able to find the essay by following the link and any changes made by either you or your friend will be visible to anyone that looks at the essay.
Option 1 would be like directly inputting the variable, while option 2 would be like using a pointer.
Is this right?
Nice analogy,well explained.
so... DropBox ?
That's the confusing part with reference
Goddamn you explained this so wonderfully in 15 mins that my professors couldn't in an entire semester lol
literally very fucking true
Yes
Almost as though a lot of CS professors aren't always sure of what they are teaching....almost lol!
@@humann5682 or just dont care
@@humann5682 wow didn't know this was common until now lmao.
Finally! Big help for me right now during my class. Thanks dude.
8:27 was the point of no return where i crossed into learning about pointers all thanks to you Caleb! I love your explanation videos! Thank you for making teaching and explaining these concepts!
watched like 10 videos about pointers. That's the one that made me understand how and why use pointers
awesome! in my class they are teaching us about pointers and new, delete, null, which seems like the old and harder way of doing things, but thanks for mentioning it in your video! most ppl skip it because its not used frequently but when we have to follow a curriculum from univ is hard to avoid and find info about those. thank u!
Hey Caleb, thanks for make this content available,I'm feeling less dumb now.
highly recommended video if anyone didn't get the pointer concept or don't know the use of a pointer, watch this video. Really helpful for me and thank you for the excellent explanation.
int* x seems more readable to me than int *x - it makes it more clear that it's an "int-pointer" ie. its own type, distinct from int. I know there all kinds of arguments about this but I don't care because I'm always right.
I'm with you on this one, all the arguments are blah blah blah multiple variables blah blah.. we're just right it's that simple. :)
The pointer pun 👌 LOL
You should seriously be a professor or something. You literally made this so much easier for me to understand and you're the only RUclipsr I can find that teaches before coding which is why I only watch your videos lol
Holy... My professor could never explain this so smoothly in half a semester. Thank you!
This guy just explained pointers the best I've ever heard it explained...........
and I'm still confused. lol Whoever was the architect of doing it this way in the beginning needs to be tarred and feathered.
This guy is so funny. And very well explained a very difficult and confusing subject.
I don't want to say other lessons bad, it's the best of 5 which I saw about pointers in recommends, and... really understand what it is and how to use it after watching. But, why is here low number of likes, not even 500. Everyone, put likes, this lesson deserves it!
I hope you are making millions off these videos because you are helping millions. If you started a goFundMe and asked all your viewers to donate a dollar we would all do it and you would be rich
i had to learn this in the lecture hall equivalent of a hot-locked car, and picked up nothing. I was really scared, but this saved me. And I love CS, so learning this and thinking of how this can improve my code gives me tingles :D
Caleb, you figure out what might be difficult to understand and you explain it very clearly. You are a great teacher, keep up the good work! Thank you very much :)
Agreed!
Very clear and articulated. Keep it up!
Certainly the best video on pointers, I wish more people taught concepts like this, rather than just showing a bit of code and syntax
after weeks of not understanding pointers, I am finally granted some clarity.
Thank you!
Wow!...so much informative...everybody explains shit in my life about that pointer thing....now i know why c,c++ is that faster❤️
Good job on explaining it. Thank you very much. Rock on!
@8:27 "c programming... disgusting..." I'll repeat that after you as many times as you want! 🙂 But seriously, I love the way you teach!
:)) To me , it's the first time I see someone writing by left hand . Awesome
I dont know why, but even though C++ is harder...typing it is so much more satisfying .....atleast for me.
int x = 5
int *p = &x (adress of)
x = 5
&x = 0x5ffe94 (some adress in memory)
p = 0x5ffe94
*p = 5
4:09 As if Hexadecimal "numbers" makes sense lol... hex includes letters. I would just say hexadecimal characters...
Well in hex A-F would be numbers not characters. All kinds of confusing 😉
I suppose the term "numerals" is likely most appropriate for this context.
Very well explained, thanks Caleb!
Ahahhh that pointer pun at the start got me ngl
Finally, the video/topic I've been waiting for
been trying to understand this since i was in university. you explained it more clear than my profs lol
great video he explain like talking to a friend
Thanks for the pointers LMAO
He _pointed_ us in the right direction
Cheers lad, these videos are a great help for uni
Thanks for uploading. Pointers are terrifying for(almost) every student learning C++.
Great video, really helped me get a handle on the concept while keeping it interesting. Thanks for the help and keep doing you bro!
that pun almost made me press dislike, never mind the video was amazing
Pointers are great for "hacking" other software, if it does not have an api. You can find out the memory addresses and read the data of other stuff and use it in your own software. Pretty sure it is violating some policys in a way, but sometimes it is an unfortunate necessarity. It is basicly the same as using cheat engine. Said differently, you can use a tool like cheat engine to find out memory locations and use this in your programs for whatever you need it.
You explain things really well. Subbed!
I've been struggling with understanding pointers in my C++ course, but your explanation made so much more sense! Thank you!
i'm 22 seconds into the video and ive already clicked the like button and subscribed, only from that Pointer joke. amazing
Wow thank you
Caleb wazzzzup brothaaaaaaa!
I heard someone say you needed points to program a game, I had him explain to me what pointers are but I didn’t understand it or why I would need it, thanks for the great video
I was really confused about the meaning of the asterik when using pointers, and how it can be used in a couple different ways. This video really helped clear that up. Thanks!
I learnt more about pointers after learning C from the K&R textbook and Michael Daconta's C++ Pointers and Dynamic Memory Managements. Kernighan and Ritchie explain pointers very well and Daconta's book is highly recommended for furthering your knowledge.
Is it possible or allowed to define an integer pointer as int* y = &x as opposed to int *y = &x? I know c++ ignores spaces in most situations, but does asterisk placement make a difference in that statement?
No, it does not make a difference. Defining a pointer as:
int* y = &x;
int *y = &x; or
int * y = &x;
are basically the same thing.
Int* just makes more sense
I like that you use a white board, I've had difficulties following other coding teachers on youtube who only use the IDE while talking about these topics. I find the whiteboard much easier to follow possibly because I'm a visual learner. You also do an amazing job dumbing down concepts that makes them easier to understand.
"Only use pointers when you have to!"
My professors giving me starter code for an assignment: I'm gonna pretend I didn't see that
Me, who hasn't touched C++ all summer: tf does this asterisk do again?
thank you for posting. i did not understand and my professor hardly explained it.
You are smart and cute. Haha
My professor constantly reminds us that he has a doctorate masters wizard of oz Jedi degree in computer science and yet Caleb here, explains pointers way better than his bald a$$. Thank you, Caleb.
You just made pointers click. it's a type of it's own, just like an 'int' or a 'string'. Rather than putting 'int' the pointer variable is * with a prefix of what variable it is your pointing to... The you give it a name and assign it to the variable you're pointing too.
Thanks again! I got the point
😁
At the end of the video you started firing them little neurons I got, then said “but let’s not get into the weeds we’ll just stop here” 😭 good video though, I wanna move from Java to c++ and this was one of the first videos I watched, so thanks.
There are no uses for Pointers in programming. Simply use references when passing to void functions instead.
Also if you do not free or delete your pointers their address is locked in the memory free space preventing other programs access to that memory space.
So if your machine stores many pointers or repeated pointers that use a different address of these locked addresses they will build up and it will crash and this is exactly why Chrome crashes.
They can run you out of memory.
Me wondering if you really use left hand to write or your just showing off your left hand skill😏
*doesn’t know the word to describe digits for hexadecimal*
…then says these numbers aren’t significant. How close can you get hahah
In general, pointer is a type of a variable that stores a link to another object. In C and C++, the link is the address of that object in the program memory. Pointers allow to refer to the same object from multiple locations of the source code without copying the object. Also, the same pointer variable may refer to different objects during its lifetime.
A similar, more restricted type is a reference.
This section is incomplete
Reason: restructure the article
Creation
A pointer is declared just like a variable but with * after the type:
-
int* px;
This is a pointer, which can point to an integer. The pointer is not yet initialized, therefore it points to an undefined location and any access to it is undefined behaviour.
What the statement did behind the scenes is to reserve a memory area large enough to hold a memory address on the given system.
Notice that so far we didn't reserve any memory to hold the integer object that the pointer will point.
Using pointers
Assignment and access of pointers:
int a = 1;
int b;
int* px;
px = &a; /* point pointer to variable a */
b = *px; /* copy value where px points to into b */
a = 10;
std::cout
if you're initializing the variable *y and setting it to the address of x (&x), why does that same *y call the value at that address and not the address itself when you use it later in the code, since you set it to the address in the beginning? that seems inconsistent to me
I wish you used a whiteboard instead of using a chalkboard...
"hexadecimal 'characters' "
Oh my god! I luv your explanation of pointers! My professor at school is so confusing so I had to go to youtube to find a better explanation. Your video at explaining pointers is very clear!
9:10 then why not just write int* y = &x and then cout
"If you're new to the subject it can be a little bit complicated."
I learned C++ in university 4 years ago and I still google when to use & and *
Why the heck is it always the youtube videos that make sense and not the professors.
like given just for the pun at the beginning
thanks caleb love you
1 year after high school i'm finally kind of understanding
Great explanation! Tbh cpp syntax is fucking confusing. *p is the pointer at definition, yet becomes the number afterwards
thx for helping me learning pointer please continue create more tutorial video!!
Great help in understanding pointers! Thanks Caleb.
Location of this nigga, right here, i died xD
the ridiculous repetition is actually effective cuz I was starting to space out lol
Where's the second part? Amazing video
This helps a lot. I am taking a college coding class and when we just started talking about references and pointers it was confusing. This teaching series is helping a lot though, thank you! Very fun to watch😊
also, we can call "&" (address of operator) as ampersand operator.
Thanks for your comment, you actually helped me to understand my Problem ^^.
Please stay well and keep on :D.
Greetings from Switzerland!
Liked you delivery, how come YT never suggest your channel in my feed, instead it kept suggesting other dumb videos ...
"Alright, let's learn how to use pointers!"
"Use references instead."
"Aight, cool."
Pointer in C: int *p
Pointer in C++: std::unique_ptr p
Digit does'nt imply base 10 at all and never has. If you look up the dictionary meaning of digit, it used to be an ancient method of signifying a unit quantity.
No offense intended to some of our brethren, but some of them are impossible to understand. I love how clearly and casually Caleb speaks.
Caleb, is it Indian Curry or English Curry?
pointer are way easier that i thought, nothing compare to recursion
Real programers call the asterisk 'star'
Really real programmers call it capital 8.
@@codebreakthrough In Python 4, '8'.upper() will return *
@@akshatvats7992 Is it 3.9 maybe? Just came recently.
@@umarhasnain7369 It must be in like ultra-beta. Because otherwise I would have received it while updating my system.
I feel sorry when i didn't laugh 😂😂😂
Just try combination of & and * until it works
Nice! Thank you! I guess that is why people prefer to declare with int* y instead of int *y to avoid confusion
the only thing i dont like about this video is the fact that you use blackboard it hurts me soo much haha
it would be easier to understand if you actually said you put * next to "int" not "y" that's why it's called int pointer
Hey Caleb, hope you're doing well my dude
subscribed right after the pointers joke
lifesaver, Pearson's textbook is trash
Just *had* to subscribe after that pointers pun.
So what's a use case where a pointer would be necessary? If I understood correctly all the examples you are giving here could also be done with references. In fact, you used the same examples in the references video.
sellojut having sponsor🤓🤓🤓
I am in school and they are making us learn pointers. we arent allowed to use references lmao