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.
#include<iostream>
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