關於寄存器變量下面說法說法正確的是

只有局部自動變量和形式參數可以作爲寄存器變量,其他(如全局變量)不行

A 寄存器變量可以聲明全局變量

 

B無法取寄存器變量的地址

D.寄存器變量訪問效率要比普通變量訪問效率高

E.聲明寄存器變量時有可能不成功

解析:

由於register變量使用的是硬件CPU中的寄存器,寄存器變量無地址,所以不能使用取地址運算符"&"求寄存器變量的地址。

直接存儲在寄存器上面的。

寄存器是與機器硬件密切相關的,不同類型的計算機,寄存器的數目是不一樣的,通常能夠被聲明爲寄存器變量的寄存器爲3到4個,對於在一個函數中說明的多於3到4個的寄存器變量,寄存器變量就聲明失敗,自動轉換爲普通變量。

 

register變量

如果有一些變量使用頻繁,則爲存取變量的值少花些時間,可以將該局部變量的值放在CPU的寄存器中,需要時直接從寄存器取出參加運算,不必去內存中去存取。由於寄存器的存取速度遠遠高於內存的存取速度,因此這樣做可以提高執行效率。這種變量叫做“寄存器變量”,用register作聲明。

說明:

(1)只有局部自動變量和形式參數可以作爲寄存器變量,其他(如全局變量)不行。

(2)一個計算機系統中的寄存器數目是有限的,不能定義任意多個寄存器變量。

(3)局部靜態變量不能定義爲寄存器變量。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章