C++ | Class and Object | Question 5

Assume that an integer and a pointer each takes 4 bytes. Also, assume that there is no alignment in objects.

Predict the output following program.





using namespace std;
class Test
    static int x;
    int *ptr;
    int y;
int main()
    Test t;
    cout << sizeof(t) << " ";
    cout << sizeof(Test *);


(A) 12 4
(B) 12 12
(C) 8 4
(D) 8 8

Answer: (C)

Explanation: For a compiler where pointers take 4 bytes, the statement “sizeof(Test *)” returns 4 (size of the pointer ptr).

The statement “sizeof(t)” returns 8. Since static is not associated with each object of the class, we get (8 not 12).

Quiz of this Question

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up
Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.