題目要求
有以下程序
int a=3;
main()
{ int s=0;
{ int a=5; s+=a++; }
s+=a++;printf(“%d\n”,s);
}
程序運行後的輸出結果是?
思路分析
有兩個同名變量a,其中一個在main函數之前,爲全局變量
另一個在main函數中的複合語句中定義,爲局部變量,在局部變量這個a中,s+=a++,即s=s+a++=5
執行完局部變量之後,接着是全局變量,a=3,所以s+=a++ ====> s = 5 + 3++ = 8
擼寫代碼
#include<stdio.h>
int a=3;
int main()
{
int s=0;
{
int a=5;
s+=a++;
printf("執行完局部變量之後s=%d\n",s);
}
s+=a++;
printf("執行完全局變量之後s=%d\n",s);
return 0;
}
驗證結果
驗證結果與分析結果一樣