只有局部自動變量和形式參數可以作爲寄存器變量,其他(如全局變量)不行
A 寄存器變量可以聲明全局變量
B無法取寄存器變量的地址
D.寄存器變量訪問效率要比普通變量訪問效率高
E.聲明寄存器變量時有可能不成功
解析:
由於register變量使用的是硬件CPU中的寄存器,寄存器變量無地址,所以不能使用取地址運算符"&"求寄存器變量的地址。
直接存儲在寄存器上面的。
寄存器是與機器硬件密切相關的,不同類型的計算機,寄存器的數目是不一樣的,通常能夠被聲明爲寄存器變量的寄存器爲3到4個,對於在一個函數中說明的多於3到4個的寄存器變量,寄存器變量就聲明失敗,自動轉換爲普通變量。
register變量
如果有一些變量使用頻繁,則爲存取變量的值少花些時間,可以將該局部變量的值放在CPU的寄存器中,需要時直接從寄存器取出參加運算,不必去內存中去存取。由於寄存器的存取速度遠遠高於內存的存取速度,因此這樣做可以提高執行效率。這種變量叫做“寄存器變量”,用register作聲明。
說明:
(1)只有局部自動變量和形式參數可以作爲寄存器變量,其他(如全局變量)不行。
(2)一個計算機系統中的寄存器數目是有限的,不能定義任意多個寄存器變量。
(3)局部靜態變量不能定義爲寄存器變量。