为什么是5 6而不是6 5
本帖最后由 JiaLess 于 2020-6-23 15:37 编辑#include<stdio.h>
main()
{
int a[]={5,8,7,6};
int y,*p=&a;
y=(*--p)++;
printf("%d",y);
printf("%d",a);
return 0;
} ++在后,先赋值,后自增。也就是说,你先把5赋给y,然后5再自增1变成了。所以是5,6 405794672 发表于 2020-6-23 15:53
++在后,先赋值,后自增。也就是说,你先把5赋给y,然后5再自增1变成了。所以是5,6
先输出的是y,为什么a0是6 JiaLess 发表于 2020-6-23 16:04
先输出的是y,为什么a0是6
你的y不就是a?你输出的是两个 a【0】。先把a的值给y, 然后a的值加1变成6。原因就是++在后。
++在前才是先把a加1变成6,然后赋给y
页:
[1]