作业帮 > 综合 > 作业

若已定义:int a[]={1,2,3},*p=a;则执行*p++=5;(*p)++;后a[0],a[1],a[2]的值

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 16:57:50
若已定义:int a[]={1,2,3},*p=a;则执行*p++=5;(*p)++;后a[0],a[1],a[2]的值依次是().
#include
void main()
{
int a[]={1,2,3};
int *p;
p=a;
*p++=5;
(*p)++;
printf("%d%d%d",a[0],a[1],a[2]);
}
5 3 3
*、++、--等单目运算符都是右结合,也就是说*p++相当于*(p++),即先把5赋值给*p(a[0],a[0]=5),再把p指向a[1](p=&a[1]),然后(*p)++就相当于(a[1]++,即a[1=3]),最后依次输出a[0]、a[1]、a[2]当然是5 3 3了.