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

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

2013-09-28 
谁能帮我解释一下这句话是什么意思呢#include stdio.hint main(){int i 2int *p &ip++p[--i] +

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


#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]....

热点排行