C语言求助,大家有空就进来帮个忙 谢谢啦
66.若有定义和语句staticinta[3]={10,20,30};int**pp,*p;p=a;pp=&p;(pp[0]++)[1]+=5;printf(“%d,%d...
66.若有定义和语句
static int a [3]={10,20,30};
int ** pp, *p;
p=a;pp=&p;
(pp[0]++)[1]+=5;
printf(“%d, %d, %d\n”, ** pp, *p,a[0]);
则输出结果是
A 25,25,10 B 10,25,10 C 25,25,15 D 输出结果不确定
(pp[0]++)[1]+=5;
这句话是怎么来计算的,麻烦大家能给个说明
谢谢拉 展开
static int a [3]={10,20,30};
int ** pp, *p;
p=a;pp=&p;
(pp[0]++)[1]+=5;
printf(“%d, %d, %d\n”, ** pp, *p,a[0]);
则输出结果是
A 25,25,10 B 10,25,10 C 25,25,15 D 输出结果不确定
(pp[0]++)[1]+=5;
这句话是怎么来计算的,麻烦大家能给个说明
谢谢拉 展开
展开全部
(pp[0]++)[1]+=5;
pp[0]就是p
那么以上就是(p++)[1]+=5;
那么分解开来就是:
先p[1]+=5; // 即a[1]+=5, a为{10,25,30}
再p++; // p指向25
所以输出25,25,10
C语言中,指针变量可以当成数组来用,但是下标是否越界程序员自己负责。
int a[10], *p;
p=a;
p[0] 相当于*p 既 a[0];
p[1] 相当于*(p+1) 既 a[1];
......
所以pp[0]就是p
pp[0]就是p
那么以上就是(p++)[1]+=5;
那么分解开来就是:
先p[1]+=5; // 即a[1]+=5, a为{10,25,30}
再p++; // p指向25
所以输出25,25,10
C语言中,指针变量可以当成数组来用,但是下标是否越界程序员自己负责。
int a[10], *p;
p=a;
p[0] 相当于*p 既 a[0];
p[1] 相当于*(p+1) 既 a[1];
......
所以pp[0]就是p
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询