空指標常量

2021-07-10 03:28:07 字數 2124 閱讀 9227

用vb.net 敲三層的時候,遇到了乙個素未相識的錯誤:

變數「db」在賦值前被使用,可能會在執行時導致null引用異常

源自:

dim db as  loginmodel.dbutil 

using conn as new sqlconnection(db.connstring)

這是資料訪問層中scoredao類中的**,在userdao類中也有類似的**:

dim db as new loginmodel.dbutil

using conn as new sqlconnection(db.connstring)

而且我把上面的這段**複製到scoredao中系統就不再提示該錯誤了;

ctrl+f查詢  該解決方案下所有的「db」,也沒有發現它有被使用過的痕跡,這是怎麼回事?上網查吧

很快就找到了答案:

了解空指標之前先說說什麼是指標吧。在電腦科學中,

指標(pointer)是程式語言中的乙個物件,利用

位址,它的值指向存在儲存器中另乙個地方的值,即

位址指向所需的變數單元

;將位址形象化的稱為"指標";

個人理解:指標起著乙個「指引」的作用;

不同的領域對指標也有著不同的定義,詳解。

指標可以用來

有效地表示複雜的資料結構

,可以用於函式引數傳遞並達到更加

靈活使用函式

的目的.使c語言程式的設計靈活、實用、高效;

指標不僅僅是

c語言的靈魂

,運用得好更是事半功倍,讓你寫出的程式更簡潔。

指標的值不能是整型值

,但空指標是個例外,他的值可以是乙個純粹的零(並不必須是純粹的零,但這個值是唯一有用的值。

在編譯時產生的任意乙個表示式,只要它是零,就可以作為空指標的值,

在程式執行時,最好不要出現乙個為零的整型變數)。 

它並不指向任何物件,

空指標的值是null

,null是乙個純粹的零,它可能會被強制轉換成void*或char*型別。即null可能是0,0l或(void*)0等。有些程式設計師,尤其是c++程式設計師,更喜歡用0來代替null;而在

一般的文件中傾向於用 null 表示,而沒有直接說成 0。但是對於指標型別來說,返回 null 和 返回 0 是完全等價的,因為 null 和 0 都表示 "null pointer"(空指標)。一句話, 空指標就是乙個

被賦值為0的指標

,在沒有被具體初始化之前,其值為0.

null在c和c++的定義方式也不一樣

,甚至不同的編譯器也有不同的要求,如:

define null 0 //c的定義方式 

define null (void *)0 //c++的定義方式

網頁問答上說這個空指標常量還關涉到自動裝箱、自動拆箱這部分內容,本菜鳥表示不懂,但是先介紹一下再說:

將基本資料型別封裝為物件型別。

當我們建立乙個integer物件時,可以這樣:

integer i = 100; (不是 int i = 100; )

實際上執行該段**的時候,系統為我們執行了:

integer i = integer.valueof(100);

此即基本資料型別的

自動裝箱

功能。基本資料型別不是物件,其沒有可呼叫的方法。int t = 1;t.後面是沒有方法的。integer t =1; t.  後面就有很多方法可讓你呼叫了。

也就是將物件中的

基本資料從物件中自動取出

。intt =

i; 實際上執行了 int t = i.intvalue();

對已說明的變數來說,變數名就是對變數值的

直接引用

。對指向變數或記憶體中的任何物件的指標來說,指標就是對物件值的間接引用。如果p是乙個指標,p的值就是其物件的位址

;*p表示「使間接引用運算子作用於p

」,*p的值就是p所指向的物件的值。

不妥之處歡迎交流。共同進步。

c c 中空指標,空指標常量,NULL

如何是乙個指標變數成為空指標 如果 p 是乙個指標變數,則 p 0 p 0l p 0 p 3 3 p 0 17 中的任何一種賦值操作之後 對於 c 來說還可以是 p void 0 p 都成為乙個空指標,由系統保證空指標不指向任何實際的物件或者函式。null 是乙個標準規定的巨集定義,用來表示空指標常...

常量指標 指標常量

int const p 表示p是乙個指向常量的指標,這種情況下,編譯器會講p所指向的物件當作常量處理,即便不是常量。所以無法改變其指向的物件的值,但是指標本身的值即其指向可以發生改變。int const p 表示指標是乙個常量,其本身值 即其指向 不可以修改,但是其指向的值 無論是常量還是變數 可以...

指標常量 常量指標

指標常量 指向常量的指標 const int pa int const pa 兩者等價。因為指向常量的指標有時候會指向常量,所以它具有這個性質 不能靠解引用改變它指向的物件的值 以此保護它所指向的常量的常量性。pa d 不可行 d是已經宣告過的整型 但指標本身的值是可變的 pa d 可行 d是已經宣...