① c語言中靜態儲存和動態儲存是什麼意思
?
:
連起來的意思
我舉個例子吧
int
a
=3;
int
b=
2;
int
c;
if(a>b)?(c=a):(c=b);//意思是如果a>b就執行c=a,否則就執行c=b
類似於下面的語句
if(a>b)
{
c=a;
}
else
{
c
=
b;
}
條件運算符是
?
:
表達式為:表達式1?表達式2:表達式3
表達式2是條件成立(邏輯值為1)時整個表達式的取值
表達式3是條件不成立(邏輯值為0)時整個表達式的值
例如:
m<n?x:a+3
a++>=10
&&
b-->20
?
a
:
b
x=3+a>5
?
100
:
200
優先順序
條件運算符優先順序高於賦值、逗號運算符,低於其他運算符
例如:
⑴
m<n
?
x
:
a+3
等價於:(m<n)
?(x)
:(a+3)
⑵
a++>=10
&&
b-->20
?
a
:
b
等價於:(a++>=10
&&
b-->20)
?
a
:
b
⑶
x=3+a>5
?
100
:
200
等價於:x=
((
3+a>5
)
?
100
:
200
)
結合性
條件運算符具有右結合性
當一個表達式中出現多個條件運算符時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算符的運算對象。
例如:
w<x
?
x+w
:
x<y
?
x
:
y
與
w<x
?
x+w
:
(
x<y
?
x
:
y)
等價
與
(w<x
?
x+w
:
x<y)
?
x
:
y
不等價
----歡迎加入------c++部落------------hello
word!--------
無論你是初學者還是專家,只要你熱愛編程、交流、分享,c++部落因為你而精彩~
② 編程語言里 什麼是靜態語言和動態語言 和什麼是編譯語言 和解釋語言通俗點 還有Java和C語言屬於哪一種
靜態語言,是固定運行結果的語言,典型的範例就是html編寫的靜態頁面代碼,比如說創建一個表格,在html語言中表格行列數是不能變化和調整的。
動態語言,根據條件的不同,輸出的內容可能不同。例如:編寫網頁的asp語言,可以通過查詢資料庫,生成動態行數的數據表。
編譯語言,一般情況下需要通過編譯環境生成對應的可執行程序或者目標程序,才能夠執行。
解釋語言,在運行時對編碼進行解釋,直接執行。例如asp語言,就是解釋型語言,不需要編譯生成可執行程序。
一般來講,C語言和java都是需要通過編譯生成可執行程序或者目標程序,所以它們都是編譯語言。
③ C語言中靜態變數與動態變數的定義與區別
動態變數和靜態變數定義和區別如下:
1、定義上,靜態變數比動態變數多一個關鍵字static,比如:
動態變數:int i;
靜態變數:static int i;
2、動態變數在子程序中,每次調用時都會從零開始,不會保留原有數據,靜態變數調用時原有值不會發生改變,比如:
main()
{
int i;
for(i=0;i<5;i++)fun();//fun1();
}
void fun() //輸出結果為11111
{
int j;
j++;
printf("%d",j);
}
void fun1() //輸出結果為12345
{
static int j;
j++;
printf("%d",j);
}
④ C語言動態變數和靜態變數的區別
一、形式不同:
靜態變數是在定義的時候,有static 修飾的變數,形式為static TYPE var_name = init_value;
動態變數,形式為TYPE var_name = init_value;即沒有static 修飾,其中的=init_value均可省略。
二、作用不同:
動態全局變數:作用域為整個項目,即最終編譯成可執行文件的所有文件中均可以使用動態全局變數,生命周期為從程序運行到程序退出,即貫穿整個運行時間。
靜態全局變數:作用域為當前文件,從定義/聲明位置到文件結尾,生命周期為從程序運行到程序退出,即貫穿整個運行時間。
常量使用
靜態變數也可以用於存儲常數。具體來說,靜態變數(全局變數及匯編語言里定義的符號亦同)可用const,constant或final(根據語言決定)等關鍵字標識,這時其值就會在編譯時設定,並且無法在運行時改變。
編譯器通常將靜態常量與文本一起置於目標文件的文本區域,而非常量初始化數據則置於數據區;而如若有需要,有些編譯器還可選擇為其開辟專用區;為防止常數變數被錯誤的指針寫入覆蓋,亦可在這塊區域啟用內存保護機制。
以上內容參考:網路-靜態變數
⑤ 在C語言中靜態變數和動態變數的區別,應該如何理解
靜態變數就是程序在執行前就已經可以確定的地址的變數。普通變數則是在程序執行後才分配的地址的變數。所以靜態變數對整個程序都是可見的,普通變數只能被給其分配地址的模塊使用,超出這個模塊普通變數的生命周期結束。
⑥ c語言中靜態變數與動態變數的不同
靜態變數在你使用一次後再次使用時,它的值還是保留的上次使用後的值,動態變數布具有這個特性。
⑦ 計算機C語言中「動態變數」和「靜態變數」的區別是什麼
靜態變數,就是在定義的時候,有static 修飾的變數,形式為
static TYPE var_name = init_value;
而動態變數,形式為
TYPE var_name = init_value;
即沒有static 修飾。其中的=init_value均可省略。
區分定義在函數外的全局變數,和函數內的局部變數,作用域,生命周期,及無顯式初始化時的初始值,均有區別。
1 動態全局變數:
作用域為整個項目,即最終編譯成可執行文件的所有文件中均可以使用動態全局變數。
生命周期為從程序運行到程序退出,即貫穿整個運行時間。
無顯式初始化時默認初始化值為0。
2 靜態全局變數:
作用域為當前文件,從定義/聲明位置到文件結尾。
生命周期為從程序運行到程序退出,即貫穿整個運行時間。
無顯式初始化時默認初始化值為0。
3 動態局部變數:
作用域為當前函數,從定義位置,到其所在的{}的結束位置。
生命周期為從函數調用到函數退出。
無顯式初始化時默認初始化值為隨機值。
4 靜態局部變數:
作用域為當前函數,從定義位置,到其所在的{}的結束位置。
生命周期為從程序運行到程序退出,即貫穿整個運行時間,當下次函數調用時,靜態局部變數不會被再次初始化,而是沿用上次函數退出時的值。
無顯式初始化時默認初始化值為0。
⑧ 請問C語言中靜態內存與動態內存呀(最好有例子)
靜態的內存使用的是棧空間內存,不用程序員自己來分配.動態內存由程序員根據需要來自己分配並收回.
最大的區別在於動態的內存分配時候會用new關鍵字或malloc或calloc函數,之所以要程序員自己來分配內存是由於有時候不能確定程序要使用多少內存,比如要通過用戶或者文件或者資料庫中的查詢結果來確定使用多少數據,這時候程序員無法在程序的編寫的時候就把內存給固定分配出來.這時候必須得讓程序在運行的時候自己來為自己找到可用的內存,就一定要用動態的方式來分配內存.
舉個例子,根據用戶的輸入一個整數來確定用戶要輸入的數組維數,這個整數不是一定確定的數值,我們可以用一個變數n來表示,並用它接受用戶的輸入,再根據n來生成一個整數數組.程序不能寫成int array[n];的形式,這樣程序是不能編譯通過的,這是因為n是一個不確定的數值.只能用new或malloc來通過用戶的輸入來分配內存.可以寫成這樣:
int n;
cout << "input n:";
cin >> n;
cout << endl;
int* iArray = new int[n];
for (int i = 0; i < n; i++)
{
cin >>iArray[i];
⑨ C語言動態變數和靜態變數的區別
全局變數聲明之前加上static,就是靜態全局變數。全局變數和靜態全局變數都是靜態存儲的;在存儲上無區別。區別在於他們的作用域;全局變數的作用域是整個源程序,當源程序有多個源文件組成時,全局變數在各個源程序文件都是有效的;而靜態全局變數怎被限制了作用域,只在定義該變數的源文件內有用在同一程序的其他源文件不能使用!
還有靜態全局變數只初始化一次,防止在其他源文件調用!而全局變數可以再其他源文件初始化!