同名变量使用的问题
void main(){
int a,s=100,p=100;
printf("\n input a number:\n");
scanf("%d",&a);
if(a>0)
{
int s,p;
s=a+a;
p=a*a;
printf("s=%d p=%d\n",s,p);
}
printf("s=%d p=%d\n",s,p);
}
在运行时,输入2,则输出结果为:
s=4 p=4
s=100 p=100
在函数体开头定义的s,p的生存期应该是在整个函数体内,在程序的第八行复合语句内又定义了一个s和p,第八行的s和p的生存期就应该只是在它所在的复合语句,前面的s和p的生存期是包含了这个复合语句的,那这是不是有矛盾啊,但是这个程序又是正确的,搞不懂,请教各路大侠!!!