1樓:匿名使用者
auto宣告後,每次呼叫這個函式都會將這個b重定義為0;
而進行stable宣告後,c將不會被改變,所以值是不同的;
第一次迴圈:
a=5(這個是固定的);
b=0+1=1(自增運算子);
c=1+3=4;
返回乙個值並輸出a+b+c=10;
第二次迴圈:
a=5;
b=0+1=2(在這裡重置);
c=4+3=7(而它並沒有);
a+b+c=13;
第三次迴圈也是一樣的,b重置,c加3,而a為定值5,所以三次輸出相差3,就是c的三次加3,和b無關。
純手打,求採納,有問題,繼續問
2樓:金色潛鳥
因為 static int c=1 ; c 的值 相當全域性量,函式退出後,它的當前值繼續有效並保留著。
所以:(迴圈1):
b=0; b=b+1=1;
c=1; c=c+3=4
a+b+c=5+1+4
(迴圈2):
c=4;c=c+3=7;
a+b+c=5+1+7=13;
(迴圈3):
c=7;c=c+3=10
a+b+c=5+1+10=16
==輸出:
10 13 16
auto在c語言中的意義
3樓:『戀愛領域
c語言中提供了儲存說明符auto,register,extern,static說明的四種儲存類別。四種儲存類別說明符有兩種儲存期:自動儲存期和靜態儲存期。
其中auto和register對應自動儲存期。具有自動儲存期的變數在進入宣告該變數的程式塊是被建立,它在該程式塊活動時存在,退出該程式塊時撤銷。
在函式內部定義的變數成為區域性變數。在某些c語言教材中,區域性變數稱為自動變數,這就與使用可選關鍵字a u t o定義區域性變數這一作法保持一致。區域性變數僅由其被定義的模組內部的語句所訪問。
換言之,區域性變數在自己的**模組之外是不可知的。切記:模組以左花
括號開始,以右花括號結束。
對於區域性變數,要了解的最重要的東西是:它們僅存在於被定義的當前執行**塊中,即區域性變數在進入模組時生成,在退出模組時消亡。
定義區域性變數的最常見的**塊是函式。
整數變數x被定義了兩次,一次在func1()中,一次在func2()中。func1()和func2()中的x互不相關。其原因是每個x作為區域性變數僅在被定義的塊內可知。
語言中包括了關鍵字auto,它可用於定義區域性變數。但自從所有的非全域性變數的預設值假定為auto以來,auto就幾乎很少使用了
4樓:匿名使用者
你不妨把他認為是沒含義!
5樓:匿名使用者
auto 表示自動儲存型別
其實現在都不用打auto, 編譯器預設為auto的
不信可以把auto刪除試試
6樓:匿名使用者
auto 表示自動儲存型別
C語言簡單的練習題,C語言簡單練習題
該表示式的值為 7 逗號表示式的值就是最後乙個式子的值 逗號表示式的運算順序是從左到右 變數x的值是 2 x這個變數初始賦值為1 然後經過x 自身加了1 所以變成2了 x 5並沒有給x賦值 變數y的值是 3 這個幾乎不用問肯定是3啦 y 3 如果y不等於3 那就見鬼了 在c語言中逗號 也是一種運算子...
c語言函式習題
1 函式呼叫 strcat strcpy str1,str2 str3 的功能是 c 將串str2複製到串str1中後再將串str3連線到串str1之後 2 若有以下呼叫語句,則正確的fun函式首部是 main b void fun float a,int x 3 有如下程式 int func in...
c語言習題請高手幫忙解答。急,C語言習題請高手幫忙解答。急。
1.b2.c 3.a4.a 5.c6.無解 7.a8.d 9.d10.b x沒有定義 11.i 5,j 4,k 6 12.2048 13.看不懂!14.4 15.s k k 這些都很簡單,但別人給的答案不一定準確 真是懷疑。是入學考試還是畢業考試?是入學考試還是畢業考試?c語言習題請高手幫忙解答,急...