shortstring,string,widestring 不仅仅大小不一样,在内存结构上也不同,
shortstring:1byte计数位(存放字符串长度)+string本身字符
string:4bytes引用记数+4bytes串长+string本身字符
widestring:1byte计数位(存放字符串长度)+string本身字符,以widechar为单位,widechar为16bit的unicode
从shortstring至string强制转换,会写复制.
widestring和string之间的转换会造成重新计数.
编译器把常量当作立即数来处理,将值直接编到指令中去,所以不会有内存占用,就没有内存地址
字符串常量是个例外,是将地址指针编到指令中.