c语言数据类型在内存中存储方式
关于这个问题,这两天一直在思考,声明一个变量的数据类型,肯定是在内存中有记录,否则怎么表示为此类型呢?
网上的多数的解释不够详尽,大概意思就是说,数据类型与数据存储无关,内存里只有数本身,我最初看的时候有点奇怪,我觉得肯定是有一个地方存储吧。
曾经学习51单片机,使用的是汇编,这里的数据类型存储,应该是占用一个单元(大概是我也记不太清了)。但是c与汇编其实本质一样,最终都是机器码,所以c中数据类型总归会占用一个地方的内存。
这是哪里呢,没错就是指令,指令给cpu命令,让cpu去调用这个地址的数据,这个数据在指令中才解释为某个数据类型。
这就很神奇了,因为所有数据类型的数在内存中与类型并不是绑定,所以理论上讲,应该是可以有方法取出某个数据的另一个类型的形式。而且这个是已经声明的变量!
例如:
int a=11; 也就是00001011
但是我通过一个指令,把这个数据用另一种方式从内存里拿出来用,理论上完全可行,o(∩_∩)o 哈哈神奇。
神不知鬼不觉,就好像国际乱码大赛的unix[a]一样。
不过我c刚开始学习,以后了解到了继续分享!