读书人

哪位高手能帮小弟我解释一下这句话是什

发布时间: 2013-09-28 10:01:20 作者: rapoo

谁能帮我解释一下这句话是什么意思呢


#include <stdio.h>

int main()
{
int i = 2;
int *p = &i;

p++;

p[--i] += i;

return 0;

}


p[--i] += i;这句话的意思不是很明白

谢谢大家乐
[解决办法]
引用:
Quote: 引用:

p[--i] += i;你这是非法改变内存的值

p[--i]相当于 *(p+ --i),也就是*(p+1),这样的话你吧p指向了i的地址后的2*4 = 8个字节。然后把i值赋给p所指向的地址的内容,这肯定是非法的


多谢多谢

终于搞明白p[i]是什么意思了 它是值不是地址哈 这样写p[i]真够蛋疼的 那我顺便问一下 既然p[i]是合法的 那么它到底有啥优点呢?感觉没有*(p+i)直接 难道仅仅是书写方便?


个人喜好,*(p+i)更直接。比如一个数组a[5],你要访问第二个元素,可以这样写:
a[1],*(a+1),1[a]....

读书人网 >C语言

热点推荐