C語言方法傳遞引數的一些誤區

2021-08-20 21:27:48 字數 298 閱讀 6340

1 所有的引數傳遞,都是傳遞值的拷貝。

2 c傳指標進去,其實也是把這個指標值按拷貝傳送進去。但是因為指標值指向一塊外部記憶體空間(其實更多是堆空間,或外層棧變數空間),所以感覺可以在函式裡改變外部變數。其實本質還是按拷貝傳遞,

只是傳遞進去的是乙個訪問變數的渠道。

這裡理解為:如果想通過方法對值進行操作,不能直接傳值,傳值的話是對拷貝做的操作,方法結束後拷貝就消失,原值不變。而正確的方法是將指向值的指標傳進去,指標和指標的拷貝(都是位址)所指向的都是同乙個值,你對位址裡的值進行操作,即使方法結束,值也會改變。

**參考:

pandas的一些誤區

data frame pd.dataframe data in 13 frame.iloc 6 1,asf 201 這一行會報錯indexerror single positional indexer is out of bounds in 14 frame.loc 6 1,hh 612 正確新增一...

SQL的一些誤區

資料庫 oracle11g無索引的情況下,一樣速度 有索引字段可以為空的情況下,count 列 更快 有索引欄位不可以為空的情況下,兩個一樣快 count 列 的時候,列的偏移量決定效能,列越靠後,訪問的開銷越大.由於count 的演算法與列的偏移量無關,所以count 最快,count 最後列最慢...

關於靜態方法和例項方法的一些誤區。

一 靜態方法常駐記憶體,例項方法不是,所以靜態方法效率高但佔記憶體。事實上,方法都是一樣的,在載入時機和占用記憶體上,靜態方法和例項方法是一樣的,在型別第一次被使用時載入。呼叫的速度基本上沒有差別。二 靜態方法在堆上分配記憶體,例項方法在堆疊上。事實上所有的方法都不可能在堆或者堆疊上分配記憶體,方法...