作业帮 > 综合 > 作业

指针初学者 求批评,计算aaaaaaa-aaaaaa-aaaaa-aaaa-aaa-aa-a的值,也就是n个a减去n-1

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/02 04:20:43
指针初学者 求批评,计算aaaaaaa-aaaaaa-aaaaa-aaaa-aaa-aa-a的值,也就是n个a减去n-1个a,a n自己输入
#include
#include
void sum(int a,int n,double *p);
void main()
{
int a,n;
double result;
printf("Please input a and n:");
scanf("%d%d",&a,&n);
sum(a,n,&result);
printf("The result is %f!\n",result);
}
void sum(int a,int n,double *p)
{
long i,k;
double result;
p=&result;
*p=a*pow(10,(n-1))+a;
for(i=1;i
大哥,你的函数一开始就把p的地址改变了,那么最后,你主函数那个result的值是一个未知值来的.
把你sum函数
double result;
p=&result;
删除就可以了.
再问: 我发现就你发现问题关键了 大哥 我是新手~~~你能在给我解释一下吗~???!!!急急急急!!!谢谢
再答: 你在主函数中已经定义了一个result,并把这个变量的地址赋给了函数。 函数接受了result的地址后,你只要利用*取值进行操作,就能够达到改变result地址中的参数的目的。 但是,你多次一举,再函数中再次定义了一个局部变量result,并把这个result的地址赋值给了p,把主函数的result的地址覆盖了。继续利用指针操作,改变的是另外一个存储地址的参数。 总结:就是你把本来应该操作的地址覆盖了。 其实,这类型的函数没有必要使用指针,你直接从函数返回一个计算值就可以了。 指针式C的重要内容,但也不是乱用的。 有其它疑问可以继续问。