数组的首地址为什么是1703688

a表示第一行第一个元素的地址苐一个元素也是一个数组,&a是数组的地址a,&a,a[0]三者值相同,但是有区别a+1表示第二行第一个元素的地址,值和a[1]相同&a+1表示数组的下一个位置嘚地址,a[0]+1表示第一行第二个元素地址

这个问题的缘由是这样的定义數组Data_rev[25]接收串口数据,除去两字节包头将Data_rev[2]~Data_rev[5]位转化为浮点数,用指针强制转化发现数据不对查看数组分配的内存发现数组首地址为奇数,所以指针强制转化的首地址也是奇数也就是Data_rev[2]的地址是奇数,由于字节对齐强制转化的时候出错了,从Data_rev[1]开始转换


    第一个问题就是分配数组时,首地址可以为奇数但是除字符型数据外其他都为偶数,字节对齐的缘故那么,指针强制转换时为什么不从奇地址开始

0

我要回帖

 

随机推荐