永发信息网

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

答案:3  悬赏:30  手机版
解决时间 2021-05-09 07:41

有一个程序,要求输入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为什么要加*号,可以不加吗?为什么?

最佳答案
scanf()与printf()实际是两个库函数,它们在头文件里已经被写好了!scanf()需要两参数,一个为字符型的表示输入格式,另一个为指针或地址,它应该指向你所要存储变量的地址!而printf()需要一个字符型参数,表输出的数据和格式,后面要跟上输出列表,后面的列表应该为具体的变量值,而不是指针或地址!*P值指的是p所指的具体变量!而p是指指针,也就是p所指的变量的地址!所以他们不能乱用,现在应该明白了吧!就像一个max(int a,int b)函数 他需要两个int 参数如果你给她别的数据,那肯定就是错误的了!
全部回答

第四行的指针变量P是不可以输入的,是由系统分配的。而在第11行的指针就是P在和数组的指针比较,但我认为这样写不好,你可以定int变量来控制循环的次数,这样就不用指针变量了。

p代表所指向的地址 *p代表所指向的地址所存放的数据
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁可以教我学英文啊?
八月一日早上祝福语,形容健身房的句子
永信汽车装具我想知道这个在什么地方
CF一路来的历史是怎样的?
急!谁帮我配这个情侣头。
三国志曹操传选什么线才能收服关羽,走那条线
晚上睡觉前必须做什么
阿拉斯加犬好吗,怎么就看我家的阿拉斯加犬是
谁帮忙做一下手机证书........ 谢谢
如何点亮炫舞
谁知道庆阳在那里!
中国移动通信石印山营业厅地址在什么地方,想
it's you 3gp下载地址
天龙二更新
QQ英雄岛最高等级是多少?有VIP功能吗?^ ^代练
推荐资讯
奥比建设卡在阆中有卖吗
吉他摔了怎麼辦?
如何把自己的柔韧性炼好?
挨的多音字组词,见字组词
幸福的爱是什么样。。。。。。。
欢乐家园(东门)地址在哪,我要去那里办事
高中数学要怎么学好?
我手机上面为什么没有阳光牧场
从永清街坐轻轨到古田二路大概要多少时间
三年级上学期期末评语,三年级小学生自我评价4
下载QQ的网址是什么?
爱情真的要听家里安排吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?