首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于指针运算,该如何解决

2012-02-23 
关于指针运算│main()│{│ int a[]{5,8,7,6,2,7,3}│ int y,*p&a[1]│ y(*--p)++│ printf(%d,y)│ pri

关于指针运算
│main()
│{
│ int a[]={5,8,7,6,2,7,3};
│ int y,*p=&a[1];
│ y=(*--p)++;
│ printf("%d",y);
│ printf("%d",a[0]);
│}

结果是5,6
为什么a[0]输出为6呢?

[解决办法]
y=(*--p)++;//这一句,指针p先减一(--p,此时指向a[0]),然后取值(*--p,值为5),接着赋值给y(y = 5),然后p所指的地址中的内容自增1(a[0] = a[0] + 1)
[解决办法]
y=(*--p)++; 这步你取了a[0]的值后自加了1 所以a[0]为6
y为5的原因是。。先让y=5,然后a[0]才自加 懂了么

热点排行