# include void p(int *x,int y){ ++*x; y=y+2; } void main() {

问题描述:

# include void p(int *x,int y){ ++*x; y=y+2; } void main() { int x=2,y=3; p(&y,y); printf("
# include
void p(int *x,int y){
++*x;
y=y+2;
}
void main()
{
int x=2,y=3;
p(&y,y);
printf("%d#%d",x,y);
}
1个回答 分类:综合 2014-11-18

问题解答:

我来补答
2#4
p函数的 int *x
得到main中 y的地址
故p函数的 x指向 main的y
p中 *x 和 main的y 占用的是同一段内存,p里 ++*x
就是main的y加1了
p 的y 接收 main的y的值
p的y和main的y是两个不同的内存
p 里 不管 p的y怎么变都不影响 main的y
所以main里x不变还是2 y变为4
再问: 如果把p(&y,y)换成p(&x,y)呢?
再答: 3#3
再问: 您的意思是只有在主函数中指针指定的变量才变化,没有指针的指定的就没变化是吗? 请您解释一下,我快考试了,帮帮忙了。。。。谢谢您
 
 
展开全文阅读
剩余:2000
下一页:细胞的物质输入