CoolInterview.com - World's Largest Collection of Interview Questions
Home| Ask Questions| About Us| Feedback| Contact Us|
 Interview Questions  
 Our Services  

Get 9,000 Interview Questions & Answers in an eBook.


  • 9500+ Pages
  • 9000 Question & Answers
  • All Tech. Categories
  • 14 MB Content

    Get it now !!



    Send your Resume to 6000 Companies

  • COOLINTERVIEW.COM LANGUAGES C++ DETAILS



    Question :
    Where we use reference and where we use pointers ?Write their differences and advantages and disadvantages .

     Posted by: kranthi    Date: 9/11/2007 1:46:09 AM

    Contact Author  Contact Author


    Answer :
    values for a 'bool' are 'true' and 'false', whereas for 'BOOL' you can use any 'int' value

    bool - 1 byte
    BOOL - 4 byte ( 32 bit platform where 'int' = 4 bytes )
    BOOL - 8 byte ( 64 bit platform where 'int' = 8 bytes )

     Posted by: Andy    

    Contact Author  Contact Author
    The difference is
    1. bool is a C++ native data type and has the size of i byte. Actually only 1 bit would suffice as the only valid values are TRUE or FALSE but nothing can have the size less that 1 Byte (leave bit fields apart)
    2 whereas BOOL is a windows specific type of int, so its nothing but an int is disguise having size whatever int has on the system. Under C++ guidelines size of int is platform dependent so we leave it at that.

     Posted by: Samit Sasan    

    Contact Author  Contact Author
    The reference is used to give the address for the data.The pointers are used to pointing to the address of the memory.

     Posted by: sunitha    

    Contact Author  Contact Author
    Reference: is referring to another object, so if you modify the value of the referred object, also the reference's value will be changed:
    int a = 10;
    int&b = a;
    a = 5; // b = 5 too
    You cannot redirect b to another int variable.
    Reference is widely used as function parameters: while the default parmeter passing is by value, if you want to change
    the value of the passed parameter inside a procedure, it won't be modified when the function returns:

    void increment(int i)
    {
    i++;
    return;
    }

    void main()
    {
    int index = 0;
    increment(index) ; // index remains still '0'
    }

    But if you use references, not the value, but the memory address will be transmitted to the function, which can so modify the value, and index will be 1:
    void increment(int& i)

    Reference is also used for passing big objects as function parameters, for efficiency purposes (it won't be copied, so the storage and the runtime will be less).
    In this case const T& is used, where T is the object type.

    Pointers: it points to an object in the memory. Main difference is that it can be redirected to another object.
    It has one more indirection level compared to reference: * is the dereference (or indirection) operator, and you can access through this operator the value of the pointed object. The pointer itself contains the memory address:
    int a = 10;
    int c = 6;
    int* p = &a;
    cout << *p; // same as cout << a;
    a = 5; // *p = 5 but p still referrs to 'a'
    p = c; // *p = 6 and p referrs to 'c'

     Posted by: Mona    

    Contact Author  Contact Author
    1)A reference is constant, you can't bind to a different object once it has been initialized.
    2)A reference must be initialized, whereas a pointer needn't be.
    3)A reference must always point to a valid object, a pointer may be NULL
    4)A reference is automatically dereferenced. You don't use *ref to access the actual object it is bound to
    5) you can't create a reference to a reference. You can create a pointer to a pointer, though
    6)Unlike a pointer, a reference is treated as if it were the object bound to it, i.e. you access members using the dot notation.

     Posted by: vittala    

    Contact Author  Contact Author

    © CoolInterview.com
    Today's Special: Get Free Magazine from SAP now!

    A D V E R T I S E M E N T








    If you have the better answer, then send it to us. We will display your answer after the approval.
    Name :*
    Email Id :*
    Answer :*
    Verification Code Code Image - Please contact webmaster if you have problems seeing this image code Not readable? Load New Code
    Process Verification  Enter the above shown code:*
    Inform me about updated answers to this question

       


    Rate the above answer. Help us to know about the answer.
    Category C++ Interview Questions
    Rating (4.8) By 5 users
    Added 9/11/2007 1:46:09 AM
    Views 4197
    Rate it!
    Free Offers 300 Free Magazines for you. No credit card required. No Shipping Charges. Absolutely Free for 1 Year.

    Please Note: We keep on updating better answers to this site. Subscribe to our newsletter to get notified when better answer is posted.

    Notify me when better answer is posted!
    Email:

    View ALL C++ Interview Questions


    Sponsored Links  

    Google Search

    Google

    CoolInterview.com is a part of Vyom Network.
    Copyright ©2003-2009 Vyom Technosoft Pvt. Ltd., All Rights Reserved. Privacy Policy
    Page URL: http://www.coolinterview.com/interview/11797/Default.asp?cachecommand=bypass


    Download Yahoo Messenger | Placement Papers| FREE SMS | ASP .Net Tutorial

    0.95