|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
char a[4][3][2] = {
{
{'a', 'b'}, {'c', 'd'}, {'e', 'f'}
},
{
{'g', 'h'}, {'i', 'j'}, {'k', 'l'}
},
{
{'m', 'n'}, {'o', 'p'}, {'q', 'r'}
},
{
{'s', 't'}, {'u', 'v'}, {'w', 'x'}
}
};
char (*pa)[2] = &a[1][0];
char (*ppa)[3][2] = &a[1];
//想要通过指针 pa 和 ppa 访问数组 a 中的 'x' 元素,请问表达式应该怎么写?
//答:*(*(pa+8)+1) 和 *(*(*(ppa+2)+2)+1))。
//这个答案不应该指向'r',
非常感谢您指出错误。您是正确的,答案不应该指向 'r',而应该指向 'x'。因此,正确的表达式是:
*(*(pa+8)+1) 和 *(*(*(ppa+2)+2)+1)
其中,pa 是指向 a[1][0] 的指针,因此 *(pa+8) 将指向 a[3][2]。然后,对于指针 *(pa+8),加 1 将指向 a[3][2][1],因此 *(*(pa+8)+1) 将返回 'x'。
ppa 是指向 a[1] 的指针,因此 *(ppa+2) 将指向 a[3]。然后,对于指针 *(ppa+2),加 2 将指向 a[3][2],因此 *(*(*(ppa+2)+2)+1) 将返回 'x'。
再次感谢您的纠正。
|
|