永发信息网

int a[][4]={1,2,3,4,5,6,7,8,9,10} *p=*(a+1) 则值为

答案:3  悬赏:0  手机版
解决时间 2021-11-14 23:26
  • 提问者网友:送舟行
  • 2021-11-14 06:14
int a[][4]={1,2,3,4,5,6,7,8,9,10} *p=*(a+1) 则值为
最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-11-14 06:32
选择 B

int a[][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

相当于int a[][4] = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 0, 0}
};而
int * p = *(a + 1);表明 p 此时指向 5
所以要想输出9, p 需要  += 4;
剩下就是 * 和 ++ 优先级的问题了.
===============
* 和 ++具有相同的优先级
* 和 ++ 具有 右结合的特性
所以 *p++ 就相当于 *(p++)
但是..... .... 尤其注意, 后置的 ++ 返回的还是当前的值, 然后整个表达式 求值完之后 才 += 1
所以 B 是正确 答案
对于C, ++p, p此时指向10, 然后 *p, 结果会是数组中的10(此处是数组中的10)
对于D, ++*p, 首先*p 结果是9, 再++, 输出10 (此时的10 只是 9 + 1, 而不是数组中的10)
全部回答
  • 1楼网友:夜风逐马
  • 2021-11-14 08:54
  • 2楼网友:旧脸谱
  • 2021-11-14 08:10
A追问解释下追答A因为他跟其他三个不同啊。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯