**
溫故而知新,每次重溫一遍知識點,都有新的見解。
參考:首先需要了解程式的記憶體是如何分配的
c/c++程式記憶體的各種變數儲存區域和各個區域詳解
棧區(stack):由編譯器自動分配與釋放,存放為執行時函式分配的區域性變數、函式引數、返回資料、返回位址等。其操作類似於資料結構中的棧。
堆區(heap):一般由程式設計師自動分配,如果程式設計師沒有釋放,程式結束時可能有os**。其分配類似於鍊錶。
全域性區(靜態區static):存放全域性變數、靜態資料、常量。程式結束後由系統釋放。全域性區分為已初始化全域性區(data)和未初始化全域性區(bss)。
常量區(文字常量區):存放常量字串,程式結束後有系統釋放。
**區:存放函式體(類成員函式和全域性區)的二進位制**。
int a =
0; 全域性初始化區
char
*p1; 全域性未初始化區
main()
函式何時值傳遞,何時指標,何時引用傳遞總結
c/c++的值傳遞,指標傳值和引用傳值的區別
c++ 什麼時候使用指標?什麼時候使用引用?什麼時候應該按值傳遞?
3種傳遞的區別**:
//值傳遞
//void myswap(int a, int b)
////指標傳遞
void
myswap
(int
*a,int
*b)//開闢了新的記憶體
//引用傳遞
//void myswap(int &a, int &b)
//int
main()
函式使用:
需要修改值
不需要修改值
指標/引用
值傳遞/引用
~持續更新
c 值傳遞 指標傳遞 引用傳遞
值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作 引...
C 值傳遞 指標傳遞 引用傳遞詳解
值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來說,值傳遞是單向的 實參 形參 引數的值只能傳入,不能傳出。當函式內部需要修改引數,並且不希望這個改變影響呼叫者時,採用值傳遞。指標傳遞 形參為指向實參位址的指標,當對形參的指向操作時,就相當於對實參本身進行的操作.引...
C 值傳遞 指標傳遞 引用傳遞詳解
最近寫了幾篇深層次討論陣列和指標的文章,其中提到了 c語言中,所有非陣列的形式引數傳遞均以值傳遞形式 而關於值傳遞,指標傳遞,引用傳遞這幾個方面還會存在誤區,所有我覺的有必要在這裡也說明一下 下文會通過例子詳細說明哦 值傳遞 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。從被呼叫函式的角度來...