[c++]指針做爲函數參數傳遞的問題

常常會碰見指針最爲函數參數傳遞的問題void exchange(int x, int y)函數

{ int p=x; x = y; y = p; } //應該是下面這樣 調用函數 是值拷貝的 因此原來元素地址對應的值不會改變 上面的代碼徹底是無效的
void exchange(int *x, int *y) { int *p=x; *x = *y; *y = *p; }
//若是傳遞的是指針 就是直接在存放內容的地址中 對元素進行交換

寫一個給某個指針分配內存的函數:spa

void my_malloc(void* p, int size)
{
    p = malloc(sizeof(int)*size);
}
//應該這麼寫:

void my_malloc(void** p, int size)
{
    *p = malloc(sizeof(int)*size);
}

指針和變量同樣,也是有地址的,變量的值真是一個值 ,指針的值被解釋位一個地址。那指針存到哪裏了呢  。。。。指針

指針也是一個變量,和普通的變量同樣,都存在內存中。code

指針也是有地址的。blog

當給一個函數的參數傳遞一個變量是,這個變量是複製過去的。內存

相關文章
相關標籤/搜索