指针和常量的误区
假定变量a的存储地址是100,那么表达式:*100=25;代表的含义是什么?如果认为代表的含义是a=25,那就错误了。这句话本身是非法的。因为100属于整型,而间接访问操作符只能访问指针类型的表达式。如果操作者确实想把25存储于位置100,那么应该进行强制类型转换,*(int *)100=25;强制类型转化把值100从 “整型”强制转化为了 “指向整型类型的指针”这样对它进行简介访问的操作才是正确的。
这个技巧唯一的用处就是当你需要访问内存中某个特定位置,它并不是用于访问某个变量,而是访问硬件本身。
左值和右值的概念区分
1、从位置来讲等号左边的即是左值,等号右边的就是右值。
2、深层次讲左值为地址值,右值为数据值。