c语言中指针的输入输出问题 求解答

有一个程序,要求输入10个实数存入一维数组,寻找其中的其中的最小数和第一个数交换后输出。要求用指针变量处理数字元素。 程序清单如下: void main() { float f[10], *p,x,*p_min; for(p=f;p<f+10;p++) scabf("%f",p); p_min=&f[0]; for(p=f+1;p<f+10;p++) if(*p<*p_min) p_min=p; x=*p_min,*p_min=*f,*f=x; for(p=f;p<f+10;p++) printf("%8.2f",*p); } 我的问题是第4行的指针变量p可以不加*,那第11行的指针变量p为什么要加*号,可以不加吗?为什么?

第四行的指针变量P是不可以输入的,是由系统分配的。而在第11行的指针就是P在和数组的指针比较,但我认为这样写不好,你可以定int变量来控制循环的次数,这样就不用指针变量了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-15
scanf()与printf()实际是两个库函数,它们在头文件里已经被写好了!scanf()需要两参数,一个为字符型的表示输入格式,另一个为指针或地址,它应该指向你所要存储变量的地址!而printf()需要一个字符型参数,表输出的数据和格式,后面要跟上输出列表,后面的列表应该为具体的变量值,而不是指针或地址!*P值指的是p所指的具体变量!而p是指指针,也就是p所指的变量的地址!所以他们不能乱用,现在应该明白了吧!就像一个max(int a,int b)函数 他需要两个int 参数如果你给她别的数据,那肯定就是错误的了!本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网