小题求速解!
#include <stdio.h>
#include <stdlib.h>
main()
{
int i,num;
num=2;
for(i=0;i <3;i++)
{
printf( "\40: The num equal %d \n ",num);
num++;
{
static int num=1;
printf( "\40:The internal block num equal %d\n ",num);
num++;
}
}
system ( "PAUSE ");
return 0;
}
有谁能帮忙说一下以上这个程序中num到底是怎么处理的。
[解决办法]
int i,num;
num=2;
for(i=0;i <3;i++)
{
// 这里用的num是for前面的那个num
printf( "\40: The num equal %d \n ",num);
num++;
//
{
static int num=1; // 这对大括号{}里用的num是这个static int num
printf( "\40:The internal block num equal %d\n ",num);
num++;
}
}
system ( "PAUSE ");
return 0;
}
[解决办法]
#include <stdio.h>
#include <stdlib.h>
main()
{
int i,num;
num=2;
for(i=0;i <3;i++)
{
printf( "\40: The num equal %d \n ",num);
num++;
//这里相当于又写了一个函数,只是没有名字而已,别的地方不能调用。
{
static int num=1;
printf( "\40:The internal block num equal %d\n ",num);
num++;
}
}
system ( "PAUSE ");
return 0;
}
[解决办法]
#include <stdio.h>
#include <stdlib.h>
main()
{
int i,num;
num=2;
for(i=0;i <3;i++)
{
printf( "\40: The num equal %d \n ",num); // 这的num是for循环外的num,在整个程序中多能使用,
num++;
{
static int num=1; // 这个num是for循环内定义的,且只在for循环的static int num=1;这条语句后使用,在使用这个num的时候,第一个num 将被屏蔽掉。
printf( "\40:The internal block num equal %d\n ",num);
num++;
}
}
system ( "PAUSE ");
return 0;
}