函式與陣列的相關重點草圖
阿新 • • 發佈:2018-11-30
呼叫函式,就要在棧上開闢空間,那麼現在我們來演示一下函式遞迴在記憶體中的路線:(函式遞迴也是自己呼叫自己的過程)
陣列初始化:陣列在定義的時候整體初始化【但是不能整體賦值】
陣列的一般知識總結:
1 陣列建立,[ ] 中必須放常量,不能放變數
2 陣列的初始化,是指建立陣列的同時賦給陣列一些合理的初始值
3 陣列在建立的時候如果想不指定陣列的確定的大小就得初始化。陣列的元素個數根據初始化的內容來確定
4 char arr1[] = "abc"; 數組裡面有: 'a' 'b' 'c' '\0' 【'\0'】是字串結束的標誌 【'\0' 就是 0 ,把字元 '0' 轉義為 0】
char arr2[3] = {'a','b','c'}; 數組裡面有三個字元:'a' 'b' 'c'
5 [ ] ,下標引用操作符。它其實就陣列訪問的操作符
6 陣列是使用下標來訪問的,下標是從0開始
7 陣列的大小可以通過計算得到 :
int arr[10];
int sz = sizeof(arr) / sizeof(arr[0]);
8 二維陣列的建立和初始化
int arr [2][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10} };
int arr [ ][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10} }; 注意: arr [可以省略 ] [ 不能省略 ]
int arr1 [2][4] = { {2, 3}, {4, 5} }; 實際上是 : { {2, 3, 0, 0}, {4, 5, 0, 0} }
int arr2 [3] [2] = { {1,2}, {3,4} }; 實際上是 : { {1,2}, {3,4},{0, 0} }
9 二維陣列在記憶體中的儲存和一維陣列一樣,一次性開闢,元素從低地址到高地址依次連續增大
10 陣列作為函式引數
陣列作為函式引數的時候,不會把整個陣列的傳遞過去。
實際上只是把陣列的首元素的地址傳遞過去了。所以即使在函式引數部分寫成陣列的形式: int arr[ ] 表示的依然是一個指標: int *arr 。
注意:陣列傳參,如果函式內部需要知道陣列元素個數,應該在函式外部算出元素個數,以引數的形式傳遞給函式。