c++和python先學(xué)哪個 聲明變量什么意思?
聲明變量什么意思?變量在使用前已定義或聲明。變量聲明意味著向程序指示變量的類型和名稱。變量該怎么聲明?如果是C語言,則必須在使用程序中涉及的每個變量之前提前聲明。例如,下面的語句:void main(
聲明變量什么意思?
變量在使用前已定義或聲明。變量聲明意味著向程序指示變量的類型和名稱。
變量該怎么聲明?
如果是C語言,則必須在使用程序中涉及的每個變量之前提前聲明。例如,下面的語句:void main(){inti,J,K,Li=10J=20K=30L=40}如果是C語言,那么可以在臨時使用時聲明變量。例如:voidmain(){inti=10For(intj=1J<=20j)/*此語句在C語言中是不允許的。必須預(yù)先聲明變量J,然后才能使用for循環(huán)語句*/printf(“at”)printf(“I=Dn”,I)}]~。變量聲明有兩種情況:
1。一是需要建立存儲空間。例如,int a在聲明時已經(jīng)創(chuàng)建了一個存儲空間。
2. 二是不需要建立存儲空間。例如:extern int a,其中變量a在另一個文件中定義。
前者是“定義聲明”或“定義”,后者是“引用聲明”。從廣義上講,一個聲明包含定義,也就是說,一個定義是一個聲明的特例,所以不是所有的聲明都是定義,比如int,它既是一個語句,也是一個定義。然而,對于externa來說,它只是一個聲明,而不是一個定義。一般來說,我們經(jīng)常這樣描述。我們稱建立空間的聲明為“定義”,不建立存儲空間的聲明為“聲明”。很明顯,我們這里所指的聲明范圍很窄,即狹義的聲明,即性質(zhì)未定義的聲明,例如:在main函數(shù)中:
int main(){
extern int a
//這是一個聲明而不是一個定義,聲明a是一個被定義的外部變量defined
//注意:在聲明外部變量時,可以刪除變量類型,如:extern A]]dosth()//execute function
}
int A//外部變量的定義不同于外部變量的聲明。外部變量的定義只能是一次,并且它的位置在所有函數(shù)之外。一個外部變量在同一個文件中的聲明可以是多次的,它可以在一個函數(shù)內(nèi)(需要在該函數(shù)中聲明哪個函數(shù))到函數(shù)外(在外部變量的定義點之前)。系統(tǒng)根據(jù)外部變量的定義(而不是根據(jù)外部變量的聲明)分配存儲空間。
對于外部變量,只能在“定義”中進行初始化,而不能在“聲明”中進行初始化。所謂“聲明”的功能是聲明變量是一個稍后定義的外部變量。它只是一個“聲明”,是為了“提前引用變量”。Extern只做一個聲明,不做任何定義。
變量怎么聲明?
變量聲明有兩種情況:(1)一種是建立存儲空間(定義和聲明)。例如,int a在聲明時已經(jīng)創(chuàng)建了一個存儲空間。(2) 二是不需要建立存儲空間(聲明)。例如:extern int a,其中變量a在另一個文件中定義。前者是“定義聲明”或“定義”,后者是“引用聲明”。從廣義上講,聲明包含定義,但并非所有聲明都是定義。例如,int a既是聲明又是定義。然而,對于externa來說,它只是一個聲明,而不是一個定義。一般來說,我們經(jīng)常這樣描述。我們將建立空間的聲明稱為“定義”,當我們不需要建立存儲空間時,我們將其稱為“聲明”。
變量的聲明和定義有什么區(qū)別?
首先,從C語言的特點來看,它是一種靜態(tài)語言,所有變量都必須有一個類型,無論是基本類型,如int、char、float、double,還是structure、union、enumeration等用戶定義的類型,只要是type關(guān)鍵字,就可以用來定義變量。另外,還有一種叫做指針的變量類型,分為變量指針和函數(shù)指針。變量指針指向特定數(shù)據(jù)類型的地址,函數(shù)指針指向函數(shù)的入口地址。可以通過組合變量類型和*符號來聲明指針。這里需要注意的是,指針是一個遞歸定義,也就是說,指針可以指向指針,這有點尷尬。核心意思是指針可以一直指向。
函數(shù)指針類型的變量定義有點特殊。下面是一個示例:
definition:typedef void(*myfun)(int)
void funimp(int param){/*function content*/}
use:myfun=funimpmyfun(10)
總之,請記住定義變量的關(guān)鍵點必須有一個類型,這與Python和其他動態(tài)語言不同。為了更好地了解程序的運行狀態(tài),最好了解每種類型的變量所占用的內(nèi)存大小。這是非常重要的。許多錯誤是由不同系統(tǒng)中變量占用的內(nèi)存大小不同造成的。例如,對于int類型,在32位系統(tǒng)中需要4個字節(jié),在64位系統(tǒng)中需要8個字節(jié)。此外,我們還應(yīng)該清楚內(nèi)存中數(shù)據(jù)的大小模式,即高位字節(jié)是第一位的還是狀態(tài)字節(jié)是第一位的。