0
点赞
收藏
分享

微信扫一扫

C语言 使用指针计算两个整数的和与差

#include <stdio.h>

void&nbsp;sum_diff(int&nbsp;num1,&nbsp;int&nbsp;num2,&nbsp;int&nbsp;*sum,&nbsp;int&nbsp;*diff){
*sum&nbsp;=&nbsp;num1&nbsp;+&nbsp;num2;
*diff&nbsp;=&nbsp;(num1&nbsp;&gt;&nbsp;num2)&nbsp;?&nbsp;num1&nbsp;-&nbsp;num2&nbsp;:&nbsp;num2&nbsp;-&nbsp;num1;
}

int&nbsp;main(void){
int&nbsp;num1&nbsp;,num2;
int&nbsp;sum,&nbsp;diff;

puts(&quot;请输入两个整数。&quot;);
printf(&quot;整数A:&quot;);
scanf(&quot;%d&quot;,&nbsp;&amp;num1);

printf(&quot;整数B:&quot;);
scanf(&quot;%d&quot;,&nbsp;&amp;num2);

sum_diff(num1,&nbsp;num2,&nbsp;&amp;sum,&nbsp;&amp;diff);

printf(&quot;两数之和是%d,&nbsp;两数之差是%d。\n&quot;,&nbsp;sum,&nbsp;diff);

return&nbsp;0;
}

调用函数 sum_diff 时,会将 main 函数中的 sum 和 diff 的地址复制给 sum_diff 的 形参 sum 和 diff。
在sum_diff函数体中,将求得的和赋值给 *sum将差值赋给 *diff,这也就相当于对 main函数中的 sum 和 diff进行赋值,因此从 sum_diff 函数返回到main函数之后,和与差也分别被储存在 main函数 的 sum 和 diff 中了。

总结:

  • 如果要在函数中修改变量的值,就需要传入指向该变量的指针。
  • 只要在被调用的函数里的指针前面写上指针运算符 *,就能间接地处理该指针指向的对象。这也是 * 运算符又称为间接访问运算符的原因。
  • 通过在指针前面写上指针运算符 * 来访问该指针指向的对象,称为解引用。

注:
将指向对象的指针作为形参,并在指针前写上指针运算符*,就可以访问该对象本身。利用这一点,就可以在被调用处修改进行调用处的对象的值。


举报

相关推荐

0 条评论