急问一个y=(*--p)++指针变量的运算的问题?

gzhtcmliyaya 2008-11-25 10:30:40


void main()
{ int a []={5,8,7,6,2,7,3};
int y,*p=&a[1];
y=(*--p)++;
printf("%d\n",y);
printf("%d\n",a[0]);
}

结果为什么是:5,6

a[0]不是固定的吗?
...全文
402 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinlubin 2008-11-26
  • 打赏
  • 举报
回复
飘来,又飘走!
jsmoke123 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mifeixq 的回复:]
y=(*--p)++;
相当于
y=(*--p)
然后
(*--p)++;
看p指向a[1], --p 就指向a[0] , *(--p) 就是a[0] == 5
所以 y=5;

然后所指向的a[0]++ ,那么a[0]变成6了……
[/Quote]

正确的
jsmoke123 2008-11-26
  • 打赏
  • 举报
回复
正确
wangweiwangxia 2008-11-26
  • 打赏
  • 举报
回复
*p=&a[1];y=*--p,p减了1就使指针指向a[0].a[0]=5,而后面的++表示先使用再自增,所以先赋给y.然后再a[0]自增加1
cnmghi 2008-11-25
  • 打赏
  • 举报
回复
void main()
{ int a []={5,8,7,6,2,7,3};
int y,*p=&a[1];
y=(*--p)++;
printf("%d\n",y);
printf("%d\n",a[0]);
}
很简单,*--p,由于优先级--大于*,--p之后p指向a[0].这时y=(*--p)++; 等价于 y=a[0]++;
所以y=5,a[0]等于6.
program2050 2008-11-25
  • 打赏
  • 举报
回复
楼上的都说啦。
tsoslience 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mifeixq 的回复:]
y=(*--p)++;
相当于
y=(*--p)
然后
(*--p)++;
看p指向a[1], --p 就指向a[0] , *(--p) 就是a[0] == 5
所以 y=5;

然后所指向的a[0]++ ,那么a[0]变成6了……
[/Quote]
指针指向的是a【0】
cyj626 2008-11-25
  • 打赏
  • 举报
回复
y=*--p
a[0]=y+1
toadzw 2008-11-25
  • 打赏
  • 举报
回复
首先;前置--与*都同等优先级,且为自右到左的,所以--先计算,因而p由指向a1位置转到a0位置,取值得到5,再进行后面的那个++,这样a0就成为了6;
mifeixq 2008-11-25
  • 打赏
  • 举报
回复
y=(*--p)++;
相当于
y=(*--p)
然后
(*--p)++;
看p指向a[1], --p 就指向a[0] , *(--p) 就是a[0] == 5
所以 y=5;

然后所指向的a[0]++ ,那么a[0]变成6了……
qqwx_1986 2008-11-25
  • 打赏
  • 举报
回复

int a []={5,8,7,6,2,7,3};
int y,*p=&a[1];
y=(*--p)++; //先--p,p的地址指向a[0],然后把a[0]的地址的值赋给y,y所以为5,然后p所知的地址的值加1,所以a[0]
//=6了,a数组的元素不是const,可以改变

lbh2001 2008-11-25
  • 打赏
  • 举报
回复
y=(*--p)++;
这句先对y赋值,再使p指的数组的某个元素加一
lbh2001 2008-11-25
  • 打赏
  • 举报
回复
数组的元素是可以改变的
除非
const int a []={5,8,7,6,2,7,3};
才是不变的
  • 打赏
  • 举报
回复
学习了~`
wudeshou82666 2008-11-25
  • 打赏
  • 举报
回复
++ -- 运算符先后的问题
jiww03 2008-11-25
  • 打赏
  • 举报
回复
数组是可以改变的,注意int a []={5,8,7,6,2,7,3};和int *a ={5,8,7,6,2,7,3};的区别
lsd1025 2008-11-25
  • 打赏
  • 举报
回复
一楼正解!

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧