问题描述
- C语言double t[3][3],(*pt)[3]=t则对t数组元素错误的引用是
-
double t[3][3],(*pt)[3]=t则对t数组元素错误的引用是:A)*(pt+1)[2] B)*(pt[0]+1) C)t[0][2] D)(*(t))[2]
===参考答案为A,求详细解释
解决方案
A错误原因:*级别低于[],被解释为: ((pt+1)[2])相当于(*(pt+1+2))即pt[3][0],t[3][0],下标出界。
可改为:(*(pt+1))[2]相当于pt[1][2],t[1][2]
解决方案二:
A错误原因:*级别低于[], *(pt+1)[2] 被解释为: *((pt+1)[2])相当于*(*(pt+1+2))即pt[3][0],t[3][0],下标出界。
可改为:(*(pt+1))[2]相当于pt[1][2],t[1][2]
解决方案三:
这里的pt,t指向同一处,使用t或pt二者效果等同。pt[i]等价于*(pt+i),是访问地址为pt+i处的内容。同理pt[i][j]等价于*(pt[i]+j),也等价于*(*(pt+i)+j),也等价于(*(pt+i))[j]。
解决方案四:
T3定时器
时间: 2024-11-10 08:04:01