C语言问题

2025-04-02 02:21:48
推荐回答(4个)
回答1:

LZ的“x[1]的初值是【9】,程序运行后输出的内容是【10】”是什么啊?跟题目都沾不上边,运行一下,得到结果2 4 6 8
分析的话,可以这样来看,当i为1的时候,x[2*i+1]即为x[1],也就是2,那么p[i][0]就是2了,同样当i为2的时候,x[2*i+1]即为x[3],也就是4,那么p[i]=&x[2*i+1]就使p[i]指向了x[3],故而p[i][0]为4,同样可以得到6和8.希望这样的分析可以让LZ接受。

回答2:

#include
void main()
{
int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{
//i=0,1,2,3时分别有x[1],x[3],x[5],x[7],
//即是p[0,1,2,3]分别是2,4,6,8.
p[i]=&x[2*i+1];
printf("%d",p[i][0]);//p[i][0]即是p[i]的首位,等同于*p[i]
}
printf("\n");
}
//结果是2468

回答3:

x[1]初值为2,结果是:2468;
第一个就不用解释了吧?
输出结果解释:
首先要懂得指针数组。其中&x【2*i+1】的意思就是对应着数组里面的具体值,多看看这方面的知识自然就懂啦

回答4:

2,4,6,8

for(i=0;i<4;i++)
{ p[i]=&x[2*i+1];
printf(“%d ”,p[i][0]);
}
从0开始:p[0]=&x[2*0+1]=&x[1],即把x[1]的地址付给p[0],所以p[0]与x[1]共用一段内存,而x[1]=2,所以p[0]为2
后面的道理一样