hi dude,
Basically data types can be classified into two basic types.
1)Value type
2)Reference type.
value types directly holds its value but reference type not.
int myVar = 10;
when the above statement executes, CLR allocates a stack with address "myVar". The stack "myVar" will hold your value 10.
String myvar ="Hello world";
When the above code executes, CLR will allocates a stack with address "myvar" but it will not directly holds the value("hello world"). instead of tis, CLR will store the actual value("hello world") in heap and stores the heap address in the stack "myVar".