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

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/28 09:34:13
已知 float a[10],*p=a,*q=&&a[2]; 假设数组的首地址为 1000H ,则表达式 q-p 的值为().跪谢
xR]s@+ L_L38uH)|XR*@,*31ٻ< P_u&d{ιna#/^I;Mʆ􌶳M]Qa?~+O܆v9.I(`/b>FMJY \x[b:7j-e4/~ᣰYA+q̜*bn9H?7}MQz5m{"=DJ186 @엂+_GcH!~abV I(Im;Jdt鏚| ]l`Ny@'$DQ z" ThtT3[ M!WB8'9d3ش{K69F!!x F9As":yVȥf0S\ /(W`&f7P9f7&pQF @ =];ݽGpC=z[W䒐Bnt|B56E)uWV|]"V2iyt5r

已知 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就是八个字节了.