0

Guys plz explain me what is int* a and int a* and i have seen these types in lot of codes i dont understand this and plz show an easy example of this to understand more clearly

25th Jun 2016, 3:02 PM
Suhail Pappu
Suhail Pappu - avatar
5 ответов
+ 1
check the "pointers" topic. it is not obvious theme, but it is quite useful feature
25th Jun 2016, 3:09 PM
Павел Шишкин
Павел Шишкин - avatar
0
imagine you want to store something. you need a box. that box needs to have the minimum size of the thing you want to store. a pointer ( int* a or int *a ) is the box. when you call a pointer ( a ) you call the location of the box, not the contents ( *a ) itself. you just need to imagine that those boxes position can be changed without changing the box contents. and you can have a box 6 times larger than the object to store 6 of them.
25th Jun 2016, 3:58 PM
Garme Kain
Garme Kain - avatar
0
another analogy: imagine we have a pointer ( webpage ). imagine i want you to see my webpage. instead of me telling you to write all the code needed for that page, which is the content of the page( *webpage ), i could tell you the url ( webpage ). the url points to the webpage contents. which is faster and easier, the url or writing all the code?
25th Jun 2016, 4:03 PM
Garme Kain
Garme Kain - avatar
0
thanks garme kain i understand now and could u plz write an example on this ?
26th Jun 2016, 11:01 AM
Suhail Pappu
Suhail Pappu - avatar
0
You create an int pointer. int *myptr; You have to create the box's size: myptr = new int; or, if you want to create space for more than one int element: myptr = new int[2]; now myptr has space for two ints, and behaves like an array. Lets populate myptr: for (int i = 0; i < 2; i++) { myptr[i] = i + 1; } this is equivalent to for (int i = 0; i < 2; i++) { *(myptr + i) = i + 1; } Now myptr is a 2 element array and has the values {1,2} doing *myptr or myptr[0] returns 1, and *(myptr + 1) or myptr[1] returns 2. Ask for anything you want to understand.
26th Jun 2016, 11:16 AM
Garme Kain
Garme Kain - avatar