Considering :

double data; 
double array[10]; 
std::vector<int> vec(4, 100); 
MyClass myclass;   

Is there a difference between :

sizeof(double);
sizeof(double[10]);
sizeof(std::vector<int>);
sizeof(MyClass);

and

sizeof(data);
sizeof(array);
sizeof(vec);
sizeof(myclass);

Are the two syntaxes different or strictly equivalent ? Are all of them evaluated at compile-time ? If not, which one is evaluated at run-time ?

Edit
Report