C語言 一級指針與二級指針詳細介紹
指針的概念
指針就是地址, 利用這個地址可以找到指定的數(shù)據(jù)
指針就是地址, 那么在使用的時候, 常常會簡單的說 指針變量為指針
指針變量就是存儲地址的變量
int *p1;// 申請了一個變量, 即在內存中開辟了一塊內存, 存儲數(shù)據(jù)
// 開辟了 8 個字節(jié), 在 Mac 下 指針都占 8 個字節(jié)
使用指針, 實際上應該說成使用指針變量
1> 算術運算
+1 移動幾個字節(jié)?
看類型: int *, long *, char *
2> 獲得地址表示的數(shù)據(jù)
指針里面存儲的是地址, 就可以將該地址中的數(shù)據(jù)取出來
尋址運算符 *&p1 -> p1
3> 修改改地址中的數(shù)據(jù)
4> 作為函數(shù)參數(shù)的使用(*****)
如果傳遞的不是指針變量, 而是普通的變量, 就是值傳遞: 函數(shù)內與函數(shù)外是兩個不同的變量, 只是存儲的數(shù)據(jù)相同(好比發(fā)送文件)
如果傳遞的是指針變量, 即傳遞的是地址, 那么就是引用傳遞: 函數(shù)內外可以看成同一個變量(好比發(fā)送鏈接)
由于函數(shù)參數(shù)使用指針后, 可以實現(xiàn)函數(shù)內變量修改后, 影響到函數(shù)外的變量. 因此常常將函數(shù)參數(shù)設置為指針類型的變量
實現(xiàn)利用參數(shù)返回多個數(shù)據(jù)的函數(shù)
scanf("%d", &num);
二級指針
二級指針就是指向一級指針的指針(n 級指針就是 指向 n-1 級指針的 指針)
指針的本質就是地址, 那么幾級指針也只是一個地址, 唯一不同的就是尋址的結果(*p)
1>在開發(fā)中使用 二級指針的地方就是利用函數(shù)或方法返回一個 一級指針數(shù)據(jù)
2> 如果需要用函數(shù)參數(shù)返回數(shù)據(jù), 如果返回的是一般的數(shù)據(jù), 傳遞一級指針
3> 如果返回的是一個一級指針, 那么參數(shù)應該是一個二級指針
4> 如果返回的是一個 n 級指針, 那么參數(shù)應該是一個 n+1 級指針
下圖中*p1指的是num的值,*p2指的是p1內存的地址,**p2也指的是num的值......
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
c語言標準庫中字符轉換函數(shù)和數(shù)字轉換函數(shù)
這篇文章主要介紹了c標準庫中字符轉換函數(shù)和數(shù)字轉換函數(shù),需要的朋友可以參考下2014-04-04緩存處理函數(shù)storageKeySuffix操作示例解析
這篇文章主要介紹了淺析緩存處理函數(shù)storageKeySuffix操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08一文詳解C語言中的switch語句和while循環(huán)
這篇文章主要給大家詳細介紹了C語言中的switch語句和while循環(huán),文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2023-12-12C++通過自定義函數(shù)找出一個整數(shù)數(shù)組中第二大數(shù)的方法
這篇文章主要介紹了C++通過自定義函數(shù)找出一個整數(shù)數(shù)組中第二大數(shù)的方法,涉及C++針對數(shù)組的遍歷操作相關技巧,需要的朋友可以參考下2015-06-06