C语言问题
一个小程序,大家帮忙看一下,本程序是完成极坐标到直角坐标的转换,而且输入
为极径和以度数为单位的极角,程序如下:
#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),则不出错.
我想是不是定义指针的时候,只为指针变量赋初值,而对指针所指的量则不管,
那么为什么程序可以运行,并且结果正确。那么这样做有没有坏处,有什么坏处
呢?
谢谢!