C语言问题

fenghuazhao fenghuazhao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一个小程序,大家帮忙看一下,本程序是完成极坐标到直角坐标的转换,而且输入
为极径和以度数为单位的极角,程序如下:
#include<stdio.h>
#include<math.h>
#define pi 3.1415926

void convert(float,float,float *,float *);

int main(void)
{
float A,r,*X,*Y;
printf("Enter the A and r:");
while(scanf("%f %f",&A,&r)==2)
{
convert(A,r,X,Y);
printf("%f\t%f\n",*X,*Y);
printf("Enter the A and r:");
}
return 0;
}

void convert(float A,float r,float * x,float * y)
{
*x=r*cos(A/180*pi);
*y=r*sin(A/180*pi);
}

本程序在TC下调试,出错为:
Warnning:possible use of "X" before definition in function main;
Warnning:possible use of "Y" before definition in function main;
Warnning:possible use of "X" before definition in function main;
Warnning:possible use of "Y" before definition in function main;

将两个指针改为普通的float 变量,函数传递用convert(A,r,&X,&Y),则不出错.
我想是不是定义指针的时候,只为指针变量赋初值,而对指针所指的量则不管,
那么为什么程序可以运行,并且结果正确。那么这样做有没有坏处,有什么坏处
呢?

谢谢!

...全文
评论 7
收藏 已收藏
分享
返回顶部
fenghuazhao
C语言 70,039 成员 243,237 内容