本節講了乙個氣泡排序,主要討論的是傳值,傳址。這一點我基本已經懂了,所以就寫乙個氣泡排序的正確程式。
#include
#include
using
namespace
std;
void display(vector
vec)
void bubble_sort(vector
&vec)
int main()
; vector
vec(ia,ia+8);
cout
<<"vector before sort:";
display(vec);
bubble_sort(vec);
cout
<<"vector after sort:";
display(vec);
}
當我們呼叫乙個函式時,會在記憶體中建立一塊特殊區域,稱為「程式堆疊」這塊特殊區域提供了每個函式引數的儲存空間。提供函式所定義的每個物件的記憶體空間。。。我們稱為區域性物件,一旦函式完成,這塊記憶體就會被釋放掉。
將引數設定為reference的理由:首先,能夠對傳入的物件進行修改,其次,降低複製大型物件的額外負擔。
也可以將vector以pointer形式傳遞。這和一reference傳遞的效果相同:傳遞物件的位址,而不是副本。但是用法不同,重新寫display()
void display(const
vector
*vec)
for(int ix=0;ixsize();ix++)
cout
<<(*vec)[ix]<<' ';
cout
《作用域及範圍:
函式內定義的物件,只存在於函式執行期間。如果將這些所謂的區域性物件的位址返回,會導致執行錯誤。
動態記憶體管理:
不論是區域性還是全域性,都是由系統自動管理。第三種儲存期形式稱為dynamic extent(動態範圍).其記憶體由程式的空閒空間分配而來,有時也稱為堆記憶體heap memory。這種記憶體由程式設計師自行管理,其分配通過new來完成。釋放通過delete表示式完成。
int *pi;
pi= new
int;
pi=new
int(1024);//指定初值
int *pia=new
int[24];//pia會被初始化為陣列第乙個元素的位址,c++
沒有提供任何語法讓我們得以從heap分配陣列的同時為其元素設定初值。
delete pi;'
delete pia;//無需檢查pia是否為0,編譯器會幫我們檢查
//不用delete的話heap分配的物件永遠不會被釋放稱為memory leak。
Python爬蟲day2 2 python函式詳解
1.認識python函式 函式的本質就是功能的封裝。使用函式可以大大提高程式設計的效率與程式的可讀性 2.區域性變數與全域性變數變數是有生效範圍的,這個生效範圍我們稱為作用域。作用域從變數出現開始到程式的最末的變數叫做全域性變數,作用域只在區域性的變數叫做區域性變數。3.函式引數使用詳解 函式的定義...
Struts2 2 動態呼叫方法
先來看看struts配置檔案 hello.jsp add input.jsp success.jsp update input.jsp success.jsp success.jsp 這會我們加入了namespace命名空間,所以在請求位址的時候不要忘記寫上這個,然後可以看出已經沒有了method方...
Qt 呼叫CAN開發包時,顯示無法找到呼叫函式
說先,對下錯誤,免得看半天發現說的不是乙個東西 c qt qt5.5.0 myprojects qtdemo20180813 qtdemo20180813 build test desktop qt 5 5 0 mingw 32bit debug test test.cpp 230 undefine...