读书人

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

发布时间: 2012-02-23 22:01:35 作者: rapoo

关于指针运算
│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]才自加 懂了么

读书人网 >C++

热点推荐