c语言,这一题求详细解释
展开全部
#include <stdio.h>
void sub( int*, int*);
int main()
{
int a[] = { 1, 2, 3, 4 }, i, x = 0;
for( i=0; i<4; i++ )
{
sub( a, &x );
printf( "%d", x );
}
printf( "\n" );
getchar();
return 0;
}
void sub( int *s, int *y )
{
static int t = 3; //被static修饰的局部变量,它们的作用域仅限于本函数,且仅在程序刚运行时初始化一次,即多次调用该函数,static变量声明仅执行一次,且static的变量生存周期为整个程序运行期间. 这里每调用一次整个函数,t将减去1,输出结果为s[3]、s[2]、s[1]、s[0],即结果为4321.
*y = s[t];
t--;
}
//答案选择: B
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询