const關(guān)鍵字詳解 關(guān)鍵字static、Const、Volatile的作用是什么?
關(guān)鍵字static、Const、Volatile的作用是什么?在C語言中,關(guān)鍵字static有三個明顯的作用:1)在函數(shù)體中,一個聲明為static的變量在這個函數(shù)的調(diào)用過程中保持其值不變。2).在模
關(guān)鍵字static、Const、Volatile的作用是什么?
在C語言中,關(guān)鍵字static有三個明顯的作用:1)在函數(shù)體中,一個聲明為static的變量在這個函數(shù)的調(diào)用過程中保持其值不變。
2).在模塊內(nèi)部(但在函數(shù)外部),聲明為靜態(tài)的變量可以被模塊中使用的函數(shù)訪問,但不能被模塊外部的其他函數(shù)訪問。它是一個局部全局變量。3).在模塊中,聲明為靜態(tài)的函數(shù)只能由該模塊中的其他函數(shù)使用。打。也就是說,這個函數(shù)被限制在聲明它的模塊的局部范圍內(nèi)。大部分考生能正確回答第一部分,有些能正確回答第二部分,很少有人能理解第三部分。這是一個考生的嚴重缺點,因為他顯然不 我不知道本地化號碼。數(shù)據(jù)和代碼范圍的好處和重要性。當我聽到被采訪者說 "const的意思是不變的,我知道我在和一個外行打交道。去年,丹·薩克斯在他的文章中完整地總結(jié)了const的所有用法,所以ESP(譯者:e。嵌入式系統(tǒng)編程)應(yīng)該非常熟悉const能做什么和不能做什么。如果你從未讀過那篇文章,就說const的意思是 "只讀 "。雖然這個回答并不是結(jié)束所有的答案,但我接受它為正確答案。如果你想知道更詳細的答案,請閱讀Saks 的文章仔細。如果考生能正確回答這個問題,我會額外問他一個問題:下面這些說法是什么意思?常數(shù)int aint const a const int * a int * const a int const * a const前兩者的作用相同,a為常數(shù)整數(shù)。第三個意味著a是一個指向常量整數(shù)的指針(也是也就是說,整數(shù)不能被修改,但是指針可以。第四個含義A是一個常量指針,指向一個整數(shù)(即指針指向的整數(shù)可以修改,但指針不能修改)。最后一個意味著a是一個指向常量整數(shù)的常量指針(也就是說,指針指向整數(shù)到不能修改,指針也不能修改)。如果候選人能正確回答這些問題,那么他給我留下了很好的印象。順便說一下,你可能會問,即使你不 不要使用關(guān)鍵字const,it 編寫一個功能正確的程序還是很容易的。那么我為什么這么看重const這個關(guān)鍵詞呢?我還有以下原因:2)通過給優(yōu)化器一些額外的信息,使用關(guān)鍵字const可能會產(chǎn)生更緊湊的代碼。3).合理使用關(guān)鍵字const可以使編譯器自然。保護那些不 并防止它們被代碼無意中修改。簡而言之,這樣可以減少bug的發(fā)生。定義為volatile的變量意味著該變量可能會被意外更改,因此編譯器不會采用該變量的值。精確地也就是說,優(yōu)化器必須在每次使用這個變量時仔細地重新讀取它的值,而不是使用存儲在寄存器中的備份。下面是一些易變變量的例子:1)。并行設(shè)備的硬件寄存器(如狀態(tài)寄存器)2)。一個將在中斷服務(wù)子程序(3)中訪問的非自動變量。多線程應(yīng)用中幾個任務(wù)共享的變量假設(shè)受訪者正確回答了這個問題(好吧,我懷疑會不會是這樣),我就稍微深究一下。讓 讓我們看看這個人是否完全理解volatile的重要性。int square(volatile int * ptr){ return * ptr * * ptr }下面是答案:1)。是的。一個例子是讀取狀態(tài)寄存器。它是易變的,因為它可能會被意外地改變。它是常量,因為程序不應(yīng)該試圖修改它。2).是的。雖然這不是很常見。一個例子是當服務(wù)子例程修改指向緩沖區(qū)的指針時。時間。3).這段代碼中有一個惡作劇。這段代碼的目的是將指針*ptr返回到值的平方,但是由于*ptr指向一個volatile參數(shù),編譯器將生成類似如下的代碼:int square(volatileInt *ptr) {int a,ba *ptrb * ptrreturn a * b}由于* ptr的值可能會意外更改,所以A和B可能會不同。因此,這段代碼可能不會返回您期望的平方值!正確代碼如下所示:
java里面的const-string什么意思?
java中不能使用Const。
1.可以使用final關(guān)鍵字。
2.比如finalintm9。聲明為final的變量不能再次賦值。Final也可以用于聲明方法或類,聲明為final的方法或類不能被繼承。
3.注意const是java的保留字,用于擴展。Const-String意味著定義的字符串常量不能在任何地方更改。