in C# I know that if we try to compare two structs with "==" operator
S1 structObj1 = new S1(); //while S1 is a struct
S1 structObj2 = new S1();
if(structObj1 == structObj2)
{}
it will fire a compile error because structs are stored in the stack and the "==" operator compares references...
but why doesn't this apply when we compare two integers or chars which are struct objects? aren't they stored in stack too?