中易网

在被调用函数中改变形参值对于调用函数中的实参没有影响

答案:2  悬赏:50  
解决时间 2021-04-27 18:47
  • 提问者网友:千城墨白
  • 2021-04-27 15:42
什么意思?
有以下程序:
# include
typedef struct { int b, p; } A;
void f(A c)
{ int j;
 c.b += 1; c.p+=2;
}
main()
{ int i;
 A a={1,2};
 f(a);
 printf("%d,%d\n", a.b, a.p);
}
程序运行后的输出结果是(  )。

A) 2,4
B) 1,2
C) 1,4
D) 2,3
为什么选B不选A?
最佳答案
  • 二级知识专家网友:寂寞的炫耀
  • 2021-04-27 15:58
被调用函数里直接改变形参的值,改变的是实参的副本的值,并不是主函数里实参的值,所以不选A
全部回答
  • 1楼网友:高冷不撩人
  • 2021-04-27 16:10

1.形参指针变量和实参指针变量仍然是两个不同的变量,因此改变形参指针变量的值不会影响到实参指针变量。

2.虽然形参和实参指针变量是两个变量,但是因为这两个变量的值相同,也就是指向相同的内存空间(目标变量),因此使用形参变量改变所指向内存空间(目标变量)的值,这种变化也会反映到实参所指向的内存空间(目标变量)。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息