C語言 一級指針與二級指針詳細介紹
指針的概念
指針就是地址, 利用這個地址可以找到指定的數(shù)據(jù)
指針就是地址, 那么在使用的時候, 常常會簡單的說 指針變量為指針
指針變量就是存儲地址的變量
int *p1;// 申請了一個變量, 即在內(nèi)存中開辟了一塊內(nèi)存, 存儲數(shù)據(jù)
// 開辟了 8 個字節(jié), 在 Mac 下 指針都占 8 個字節(jié)
使用指針, 實際上應(yīng)該說成使用指針變量
1> 算術(shù)運算
+1 移動幾個字節(jié)?
看類型: int *, long *, char *
2> 獲得地址表示的數(shù)據(jù)
指針里面存儲的是地址, 就可以將該地址中的數(shù)據(jù)取出來
尋址運算符 *&p1 -> p1
3> 修改改地址中的數(shù)據(jù)
4> 作為函數(shù)參數(shù)的使用(*****)
如果傳遞的不是指針變量, 而是普通的變量, 就是值傳遞: 函數(shù)內(nèi)與函數(shù)外是兩個不同的變量, 只是存儲的數(shù)據(jù)相同(好比發(fā)送文件)
如果傳遞的是指針變量, 即傳遞的是地址, 那么就是引用傳遞: 函數(shù)內(nèi)外可以看成同一個變量(好比發(fā)送鏈接)
由于函數(shù)參數(shù)使用指針后, 可以實現(xiàn)函數(shù)內(nèi)變量修改后, 影響到函數(shù)外的變量. 因此常常將函數(shù)參數(shù)設(shè)置為指針類型的變量
實現(xiàn)利用參數(shù)返回多個數(shù)據(jù)的函數(shù)
scanf("%d", &num);
二級指針
二級指針就是指向一級指針的指針(n 級指針就是 指向 n-1 級指針的 指針)
指針的本質(zhì)就是地址, 那么幾級指針也只是一個地址, 唯一不同的就是尋址的結(jié)果(*p)
1>在開發(fā)中使用 二級指針的地方就是利用函數(shù)或方法返回一個 一級指針數(shù)據(jù)
2> 如果需要用函數(shù)參數(shù)返回數(shù)據(jù), 如果返回的是一般的數(shù)據(jù), 傳遞一級指針
3> 如果返回的是一個一級指針, 那么參數(shù)應(yīng)該是一個二級指針
4> 如果返回的是一個 n 級指針, 那么參數(shù)應(yīng)該是一個 n+1 級指針
下圖中*p1指的是num的值,*p2指的是p1內(nèi)存的地址,**p2也指的是num的值......
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
C++ LeetCode1805字符串不同整數(shù)數(shù)目
這篇文章主要為大家介紹了C++ LeetCode1805字符串不同整數(shù)數(shù)目,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12C語言 pthread_create() 函數(shù)講解
這篇文章主要介紹了C語言 pthread_create() 函數(shù)講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08C語言中pthread_exit和pehread_join的使用
pthread_exit用于強制退出一個線程,pthread_join用于阻塞等待線程退出,獲取線程退出狀態(tài),本文主要介紹了C語言中pthread_exit和pehread_join函數(shù)的使用,具有一定的參考價值,感興趣的可以了解一下2024-02-02聊聊C++中右值引用和移動構(gòu)造函數(shù)的使用
這篇文章主要是來和大家一起聊聊C++中右值引用和移動構(gòu)造函數(shù)的使用,文中通過示例進行了詳細講解,感興趣的小伙伴可以跟隨小編一起學習一下2022-07-07