[讨论]不正确吗??不明白!!
{
main()
{ auto int a,s,p;
printf("\ninput a number:\n");
scanf("%d",&a);
if(a>0){
s=a+a;
p=a*a;
}
printf("s=%d p=%d\n",s,p);
}
s,p是在复合语句内定义的自动变量,只能在该复合语句内有效。而程序的第9行却是退出复合语句之后用printf语句输出s,p的值,这显然会引起错误。}
以上这段说法对吗??"定义"是什么概念啊?是使用的时候呢?还是说明的时候?
auto 是系统默认的,可以不加.把第一个{ 去掉,
#include<stdio.h>
main()
{int a,s,p;
printf("\ninput a number:\n");
scanf("%d",&a);
if(a>0)
{
s=a+a;
p=a*a;
}
printf("s=%d p=%d\n",s,p);
}
是可以的,编的应该没错.
最好考虑以下a<=0的,