第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

靜態(tài)存儲和動態(tài)存儲的區(qū)別

請問靜態(tài)存儲和動態(tài)存儲的區(qū)別是什么?最好舉個例子,謝謝。小編說的沒看懂。

正在回答

4 回答

例如求從1開始每次計算乘2循環(huán)5次

void fn()

{

? ? static int x = 1; ? //定義靜態(tài)局部變量

? ? x*=2; ? ? ? ?//定義每次循環(huán)的計算式

? ? printf("x=%d\n",x); ?//顯示X的值

int main()

{

? ? int i;

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? fn();

? ? }

? ? printf("x=%d\n",x);

? ? return 0;

}

/*這里用的是靜態(tài)存儲,所以我每一次循環(huán)輸出的值都會被記錄下來,x=2,x=4,x=8,x=16,x=32在程序調試界面就會看到 這幾個值 */

?同樣的例子用auto的話

void fn()

{

? auto ? int x = 1; ? //定義 ? auto ?局部變 ? ?量

? ? x*=2; ? ? ? ?//定義每次循環(huán)的計算式

? ? printf("x=%d\n",x); ?//顯示X的值

int main()

{

? ? int i;

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? fn(); ?

? ? } ??

? ? printf("x=%d\n",x);

? ? return 0;

}

用了auto的話計算的過程存儲的值就會得到釋放 則最后輸出結果 x=32


?可以大致理解兩者的區(qū)別就是靜態(tài)不會釋放循環(huán)過程中運算的值 會存起來與最后結果一并輸出,而自動的話就會把過程釋放掉僅留下最終結果

3 回復 有任何疑惑可以回復我~
#1

qq_二狗君_0 提問者

如果用動態(tài)存儲的話,在程序調試界面就不會看到 x=2,x=4,x=8,x=16,x=32,只會看到最后輸出結果 x=32??
2016-11-25 回復 有任何疑惑可以回復我~
#2

奧古斯都_剛鐸

試了一下第二種的結果是5個都是等于2,不是32???還有return 0之前的printf好像不對,里面的x沒有定義????
2017-03-01 回復 有任何疑惑可以回復我~

上面回答在自動變量方面有些許錯誤

定義

在函數(shù)內部定義的常規(guī)變量稱為自動變量,使用自動存儲空間。

即這些變量在函數(shù)被調用時自動生成,在函數(shù)調用結束后自動消亡。

作用域

自動變量是一個局部變量,其作用域為包含它的代碼塊(指被花括號括起來的一段代碼)

#include?<stdio.h>
void?fn()
{
	auto?int?x?=?1;???//定義?auto?局部變量
????x*=2;????????//?定義每次循環(huán)的計算式
????printf("x=%d\n",x);??//?顯示X的值
}
int?main()
{
????int?i;
????for(i=0;i<5;i++)
????{
????????fn();??
????}
????return?0;
}

輸出結果

x=2
x=2
x=2
x=2
x=2

在循環(huán)中調用fn函數(shù),每次調用,fn函數(shù)中的局部變量都是重新賦值的,由于結束函數(shù)調用,就自動消亡,所以是不會保存,每次都是同樣的輸出結果。

7 回復 有任何疑惑可以回復我~
#1

無切w

謝謝指出
2017-04-03 回復 有任何疑惑可以回復我~
#2

無切w

謝謝指出
2017-04-03 回復 有任何疑惑可以回復我~

樓上的回答很全面!


2 回復 有任何疑惑可以回復我~

如果用動態(tài)存儲的話,在程序調試界面就不會看到 ?x=2,x=4,x=8,x=16,x=32,只會看到最后輸出結果 x=32??

0 回復 有任何疑惑可以回復我~
#1

無切w

對,可以理解為動態(tài)存儲把過程的存值都釋放掉了,只留下最后需求的
2016-11-25 回復 有任何疑惑可以回復我~
#2

寶慕林8006028

用動態(tài)存儲不是x=2嗎
2017-03-14 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926894    人
  • 解答問題       21492    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

靜態(tài)存儲和動態(tài)存儲的區(qū)別

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號