指针初学者 求批评,计算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
人气:495 ℃ 时间:2020-06-24 06:27:39
解答
大哥,你的函数一开始就把p的地址改变了,那么最后,你主函数那个result的值是一个未知值来的.
把你sum函数
double result;
p=&result;
删除就可以了.我发现就你发现问题关键了 大哥 我是新手~~~你能在给我解释一下吗~???!!!急急急急!!!谢谢你在主函数中已经定义了一个result,并把这个变量的地址赋给了函数。函数接受了result的地址后,你只要利用*取值进行操作,就能够达到改变result地址中的参数的目的。但是,你多次一举,再函数中再次定义了一个局部变量result,并把这个result的地址赋值给了p,把主函数的result的地址覆盖了。继续利用指针操作,改变的是另外一个存储地址的参数。总结:就是你把本来应该操作的地址覆盖了。 其实,这类型的函数没有必要使用指针,你直接从函数返回一个计算值就可以了。 指针式C的重要内容,但也不是乱用的。有其它疑问可以继续问。
推荐
- a+aa+aaa+aaaa+……+aaaaaa……aaaa
- 求Sn=a+aa+aaa+aaaa+aaaaaa……a的和
- QB中怎样计算a+aa+aaa+aaaa+……+aaaaa……aaaa
- a乘a=bd aa乘aa=abcd aaa乘aaa=aabccd aaaa乘aaaa=aaabcccd aaaaa乘aaaaa=aaaabccccd
- A级,AA级,AAA级,AAAA级,AAAAA级风景区是什么意思
- 甲的4倍与乙的相反数的和是多少?甲与乙的平方和?甲与乙的和的平方?
- 两根同样长的绳子,一根剪去他的二分之一,一根减去他的二分之一米,
- 1.关于x的方程为3x+a=5-bx,请问:当b,a满足什么条件时,方程:(1)有唯一解?(2)有无数个解?
猜你喜欢