I am stuck on this problem..you are supposed to locate the error in the segment of code:

char var1, ptr1;
var1='X';
ptr1=&var1;

Can someone please help me figure this out. It is much appreciated.

I am stuck on this problem..you are supposed to locate the error in the segment of code:

char var1, ptr1;
var1='X';
ptr1=&var1;

Can someone please help me figure this out. It is much appreciated.
I think their needs to be an * by the ptr1 where the variable is declared but I am really not sure.??

char var1, *ptr1;  // <--- * goes here
var1='X';
ptr1=&var1;

It's important to remember that you need '*' for each pointer variable. Therefore: char* ptr1, ptr2; doesn't work as intended.
For two ptrs, you must do char *ptr1, *ptr2.


Ed

I am stuck on this problem..you are supposed to locate the error in the segment of code:

char var1, ptr1;
var1='X';
ptr1=&var1;

Can someone please help me figure this out. It is much appreciated.
I think their needs to be an * by the ptr1 where the variable is declared but I am really not sure.??

That is what I thought for the one above...But I am stuck again on this one..could you possibly help again?

char c='A';
char *p;
p=c

* goes here right?? char *c='A';
char *p;
p=c;

hopefully i am getting this..please let me know if this is right

char c='A';
char *p;
p=&c  // <-- should read a pointer (*) to char named p gets the the address (&) of char c

thank you..you must really get this stuff..must be nice...could you help me some more...

var1's address is 55441
int var1=2323;
int *ptr;
ptr=&var1;

var1=?
ptr=?
*ptr=?

var1's address is 55441
int var1=2323;
int *ptr;
ptr=&var1;


var1 = 2323
ptr = 55441
*ptr = 2323

Thank you shalin....THat is what I thought but wasn't for sure...

THis one wants to know what the output produced is when the code is executed:

char var1 = 's';
char var2 = 'x';
char *ptr1, *ptr2;
ptr1=&var1;
ptr2=&var2;
*ptr2=*ptr1;
cout << *ptr1 << " " << var2 << endl;

Try to understand the concept of pointers rather.It's simple actually.A pointer points to the address in memory of a variable.That way if you change one, the changes can be seen at all places.Multiple pointer can point to a variable.

A var can be tought of as a TV and the pointer a Remote Control.Change the channel anywhere,the result is on the TV.And a TV can have multiple remotes ;)

Look below:

&val means address of the variable var
*p (if is a pointer (int *p; )) means value at address pointed at by p.Changes this will change the variable it points to.

int val = 1;
p=&val;
val+=10

cout<<val<<" *p="<<*p; //output is the same for both
(*p) += 4; //changes the value of val
cout<<val<<" *p="<<*p; //output is the same for both

The outputs are:
11 11
15 15

*(p++) increses the address to which it points to by the pointers datatype size.
*(p)++ increses the val at the address pointed by p by 1.

Understand the pointer concept ;) ?

This article has been dead for over six months. Start a new discussion instead.