Thread: Pointer lesson needed

  1. #1
    Registered User verbity's Avatar
    Join Date
    Nov 2006

    Pointer lesson needed

    Sorry in advance. I need a pointer class. I'm working on an overload + operator that takes and returns the char in a String at *(s + x) where s is a String and x is an s[x]...

    I have it set up as a friend and the following:

    char* operator+(const String& s, int x)
    	return s.m_buf[x];
    ......obviously that's wrong but if I put &s.m_buf[x] wouldn't that double reference?? So bottom line is I don't friggin' know what to put there for a return value and Bjarne Stroupstrup needs to write a book idiots like me can read cause I can't understand a thing he says....LOL!!! Any help or better yet a nice little explaination would be cool.

  2. #2
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    United States
    s.m_buf[x] is like *(s.m_buf + x), accessing the character x in s.m_buff
    so, following that, &s.m_buf[x] takes the address of x in s.m_buff
    since pointers hold the address of an object, it's the Right Thing

  3. #3
    Registered User
    Join Date
    Mar 2005
    If you just want to return a char, then just return a char and not a pointer to a char.

    Rewrite your return as: char operator + (blah.. blah.. blah..);
    else, what you're doing when you apply the ampersand to the variable m_buf is you're returning the address of the current index, x.

    And no,that would not be double dereferencing. dereferencing would be: char* ip; *ip = 'v'; dereferencing is applied on pointers. none of the variables in your code are pointers

  4. #4
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    You can treat a reference just as if it was another name, an alias, for the original variable.
    int var = 1, &ref = var;
    int *p1 = &var, *p2 = &ref;

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell

    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ:

    My website:
    Projects: codeform, xuni, atlantis, nort, etc.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 9
    Last Post: 12-25-2007, 05:01 AM
  2. Quick question about SIGSEGV
    By Cikotic in forum C Programming
    Replies: 30
    Last Post: 07-01-2004, 07:48 PM
  3. Another Linked List plee
    By Dragoncaster131 in forum C Programming
    Replies: 3
    Last Post: 05-15-2004, 05:40 PM
  4. Contest Results - May 27, 2002
    By ygfperson in forum A Brief History of
    Replies: 18
    Last Post: 06-18-2002, 01:27 PM
  5. file pointer
    By Unregistered in forum C Programming
    Replies: 3
    Last Post: 10-11-2001, 03:52 PM