「!」的簡單理解

2021-08-01 00:13:44 字數 710 閱讀 8981

今天看了乙個**,有這樣一句:

plisthead *plisthead,*ptobedeleted;

if(!plisthead||!ptobedeleted)

之前一直不理解,這個!+指標的模式表示的是指標沒有初始化,還是指標為空。

於是我做了乙個兩個實驗,**如下

int *p;

if(!p)

這個是沒有初始化的指標,結果直接顯示編譯不通過。

int *p=new

int;

if(!p)

可以執行,沒有執行if內容。

這個表明指標p只要初始化分配記憶體空間了,!p就為false。

int *p=nullptr;

if(!p)

列印:true

這說明對於非符號「!」來說,只有指標為空才是true的。

然後我對變數int也做了一下實驗。

int i

if(!i)

編譯錯誤

這個也不行,只要不初始化,就無法進行非的判斷。

int i=5;

if(i)

列印:true

只有這樣才能編譯通過,所以對於非指標變數來說,只要初始化了在if中就應該為true。

反射的簡單理解

載入類 3個方式 person有2個屬性,name和age,最後會給出person類的資訊 class clazz1 class.forname person class clazz2 person.class person p new person class clazz3 p.getclass ...

svm的簡單理解

svm是一種訓練機器學習的演算法,可以用於解決分類和回歸問題,同時還使用了一種稱之為kernel trick的技術進行資料的轉換,然後再根據這些轉換資訊,在可能的輸出之中找到乙個最優的邊界。簡單來說,就是做一些非常複雜的資料轉換工作,然後根據預定義的標籤或者輸出進而計算出如何分離使用者的資料。簡單理...

EventBus的簡單理解

1.新增依賴compile org.greenrobot eventbus 3.0.0 2.定義乙個類,有參構造方法。我的簡單的理解 接收方和傳送方和eventbus的關係 接收方相當於訂閱報紙,傳送方相當於報社,eventbus相當於送報紙的人,只有你先訂閱了報紙,報社會讓人給你去送報紙 所以想讓...