#include<stdio.h>voidmain(){inta[4]={1,2,3,4};int*p;p=&a[2];printf("%d",++*p);printf("%d ",*--p);}运行结果42...

展开全部
收起
6回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 周文轩

    19人对此回答表示赞同

    p=&a[2]让你的指针指向了a[2]的地址,a[2]的值是3,++*p让指针所指单元内容自加1,也就是3+1=4,*--p让指针指向上一个单元,也就是a[1],值是2
    展开
    19
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 阿尔法-Sco

    19人对此回答表示赞同

    在数组当中,如果你的指针p=&a[2];,他实际指向的是3,也就是说数组a[4],他的下标其实是从0开始的,也就是a[0]~a[3],所以你的p=&a[2]是3的地址,当你的指针++*p时,p指向a[2],*p的值是3,++后变为4。也就是4.当*--p时指向a[1],也就是2.希望能帮到你!
    展开
    19
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Stella

    17人对此回答表示赞同

    printf("%d ",++*p); //++*p等价于++(*p),p指向a[2],*p的值是3,++后变为4。
    printf("%d\n",*--p); //*--p等价于*(--p),p指向a[2],--p指向a[1],a[1]的值是2,因此*--p的值是2。
    展开
    17
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 炎凉世态

    14人对此回答表示赞同

    首先p是a[2]的地址,a[2]为3,printf("%d ",++*p);表示先引用*p,相当于++a[2],那么就等于4,而且a[2]也变成了4.
    printf("%d\n",*--p);表示先把p这个地址减一,则p变成了a[1]的地址,然后再引用*p就是相当于输出a[1],也就是2,所以答案是4 2
    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Easton

    1人对此回答表示赞同

    p=&a[2]; 得到p指向a[2]的地址
    ++*p *p得到值3 然后++表达式的值为4
    *--p --p p的指向变成指向a[1]的地址 通过*取值得到a[1]的值2
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Zavier

    1人对此回答表示赞同

    int *p; p为整型指针
    p=&a[2]; p指向了数组a[2]所在地址,即数字3 的地址
    printf("%d ",++*p); *p为数字3,++*p输出值为3+1=4
    printf("%d\n",*--p); --p为a[2]地址减一,即a[1]地址,*--p即a[1]值 为2
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部