float *psum;定义了一个浮点型的指针变量psum
psum保存的是地址;
void sum_diff(float op1,float op2,float *psum,float *pdiff)
*psum指向的是a的地址代表的值;
float *pa=&a; 初始化pa的值 ,这样*pa指向的是a地址代表的值
*psum,*pa,a这三个指向的都是a;
改变*psum的值,就可以改变pa的值了,即*pa的值也发生了改变。
psum和pa是两个不同的指针变量,但他们都是a的地址。
通过函数调用*psum,改变*psum的值。
因此a的值发生了改变。
#include<stdio.h>
void sum_diff(float op1,float op2,float *psum,float *pdiff);
int main()
{
float a,b;
float *pa=&a;//初始化pa,pb的值 ,这样*pa和a代表同一个存储单元
float *pb=&b;
printf("enter op1 and op2: ");
scanf("%f%f",&a,&b);
sum_diff(a,b,pa,pb); //使用变量a,b来调用函数
printf("%f\n%f\n",a,b);
return 0;
}
void sum_diff(float op1,float op2,float *psum,float *pdiff)
{
*psum=op1+op2; //实参pa的值传递给形参psum,改变*psum的值,
//就改变了*pa和a代表同一个存储单元的内容,a的值也就发生了改变。
//psum和pa是两个不同的指针变量,但他们都是a得地址
*pdiff=op1-op2;
}
enter op1 and op2: 23 34
57.000000
-11.000000
本文深入解析C语言中指针的运用,特别是通过函数参数传递指针以修改原始数据的方法。通过实例演示如何使用指针变量进行数值计算,并探讨了指针与数组之间的联系,以及不同指针变量指向同一地址时的影响。
1772

被折叠的 条评论
为什么被折叠?



