已知 float a[10],*p=a,*q=&&a[2]; 假设数组的首地址为 1000H ,则表达式 q-p 的值为().跪谢

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 19:06:47

已知 float a[10],*p=a,*q=&&a[2]; 假设数组的首地址为 1000H ,则表达式 q-p 的值为().跪谢
已知 float a[10],*p=a,*q=&&a[2]; 假设数组的首地址为 1000H ,则表达式 q-p 的值为().
跪谢

已知 float a[10],*p=a,*q=&&a[2]; 假设数组的首地址为 1000H ,则表达式 q-p 的值为().跪谢
哥哥,你的*q=&&a[2]是不是多了一个&符号啊?意思应该是指针q指向a[2]的地址吧.

如果是这样的话,q - p = 2;
计算步骤如下:
(1)p为指针,且指向数组a的首地址,即p的值是a[0]的地址;
(2)q为指针,且指向数组元素a[2],即q的值是a[2]的地址;
(3)q - p的意思是q指向的float元素与p指向的float元素之间的元素个数!因此是2

但是如果你把p和q都转化成整型值,再相减的话,那么(int)q - (int)p就等于8了,这是因为一个float元素占四个字节,两个float就是八个字节了.