作业帮 > 数学 > 作业

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

来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/04/29 07:52:31
已知 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就是八个字节了.
再问: 可是我们书上就是两个&&啊 我也不知道呢 我在想是不是 一个代表取值 另一个代表引用 这样可以嘛··
再答: 我没见过这样的表达式呢~ 应该是属于印刷排版错误。 你这里声明的q就是一个float型的指针,所以赋值一定是一个float型的变量地址。这里应该是只有一个&符号的。