有以下程序: #include <stdio.h> fun(int x, int y) { static int m=0, i=2; i+=m+1; m=i+x+y; retur 有以下程序:# include<stdio.h> int f...
c語言的static變量是在程序加載的時候就為之分配內(nèi)存的,一直到程序結(jié)束,而不像普通變量那樣函數(shù)執(zhí)行一次分配一次。
fun函數(shù)中的局部變量m、i是靜態(tài)局部變量(它的生存期為整個源程序,但是其作用域仍與自動變量相同,只能在定義該變量的函數(shù)內(nèi)使用該變量。退出該函數(shù)后, 盡管該變量還繼續(xù)存在,但不能使用它。),所以每次函數(shù)調(diào)用完后的,它們的至不會丟失。再次調(diào)用fun函數(shù)時,都是上次調(diào)用fun函數(shù)時修改后的值。
第一次調(diào)用結(jié)束后:m的值是5,i的值是3
那么在第二次調(diào)用時:
執(zhí)行 i+=m+1 這句中 m的值是5,i是3,執(zhí)行完后 i的值9,那么 執(zhí)行m=i+x+y后,m的值是m=9+1+1=11。
你可以參考一下:以下關(guān)于c語言中static 變量鏈接
http://wenku.baidu.com/link?url=egN9VhqBBM-hirS8SOHTRP5n1A06ovbv6IuKQ5aOxgPcOlQ6Ndv-q7mNfJlf8frVNrlXjG5AlFn909ngrV-qGfC6YDzRX0mjKDif-WNSTc3
豐黃19659305380: 有以下程序#include<stdio.h> Main() { int a=1,b=2,c=3,d=0; if(a= =1 &&b++= =2) if(b!=2 || c - - != -
商洛市冠輪: ______ 有注釋:#include main() { int a=3,b=2,c=1; c-=++b;/*-2*/ b*=a+c;/*3*/ { int b=5,c=12; c/=b*2;/*1*/ a-=c;/*2*/ printf("%d,%d,%d\n",a,b,c); a+=--c;/*2*/ } printf("%d,%d,%d\n",a,b,c); }結(jié)果:2,5,12,3,-2
豐黃19659305380: 有以下程序 main() { int x=102,y=012; printf(“%2d,%2dn”,x,y); }...
商洛市冠輪: ______ #include <stdio.h> int main () { int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for (i=1;i<3;i++) for(j=i;j<3;j++) printf("%d",a[i][j]); printf("\n"); } 數(shù)組a[][3]是由a[0][0]~a[2][2]組成的,第一層循環(huán)取 i 為1,而j等于i開始就是a[1][1]=5,a[1][2]=6,第二層循環(huán)i為2,j等于i開始就是a[2][2]=9了,輸出結(jié)果是569.
fun函數(shù)中的局部變量m、i是靜態(tài)局部變量(它的生存期為整個源程序,但是其作用域仍與自動變量相同,只能在定義該變量的函數(shù)內(nèi)使用該變量。退出該函數(shù)后, 盡管該變量還繼續(xù)存在,但不能使用它。),所以每次函數(shù)調(diào)用完后的,它們的至不會丟失。再次調(diào)用fun函數(shù)時,都是上次調(diào)用fun函數(shù)時修改后的值。
第一次調(diào)用結(jié)束后:m的值是5,i的值是3
那么在第二次調(diào)用時:
執(zhí)行 i+=m+1 這句中 m的值是5,i是3,執(zhí)行完后 i的值9,那么 執(zhí)行m=i+x+y后,m的值是m=9+1+1=11。
你可以參考一下:以下關(guān)于c語言中static 變量鏈接
http://wenku.baidu.com/link?url=egN9VhqBBM-hirS8SOHTRP5n1A06ovbv6IuKQ5aOxgPcOlQ6Ndv-q7mNfJlf8frVNrlXjG5AlFn909ngrV-qGfC6YDzRX0mjKDif-WNSTc3
相關(guān)評說:
商洛市冠輪: ______ 有注釋:#include main() { int a=3,b=2,c=1; c-=++b;/*-2*/ b*=a+c;/*3*/ { int b=5,c=12; c/=b*2;/*1*/ a-=c;/*2*/ printf("%d,%d,%d\n",a,b,c); a+=--c;/*2*/ } printf("%d,%d,%d\n",a,b,c); }結(jié)果:2,5,12,3,-2
商洛市冠輪: ______ #include <stdio.h> int main () { int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for (i=1;i<3;i++) for(j=i;j<3;j++) printf("%d",a[i][j]); printf("\n"); } 數(shù)組a[][3]是由a[0][0]~a[2][2]組成的,第一層循環(huán)取 i 為1,而j等于i開始就是a[1][1]=5,a[1][2]=6,第二層循環(huán)i為2,j等于i開始就是a[2][2]=9了,輸出結(jié)果是569.