1.陣列作為引數,引數定義時可以寫成 int b或是 int *b,傳值時寫成 b 或者&b[0]是等價的。因為對於一維陣列來說,b就是指數組b的首位址。也就是說傳入函式時,b就退化成單獨的位址了,並且不儲存任何有關陣列的長度。所以,你休想在函式定義中獲得其長度,真是痛苦,只有在傳參時多加入幾個引數來確定其長度了!這點真的令人很痛苦!!不過好像可以通過模板解決,在下就不懂了。
2.怎樣獲得陣列元素個數?
int n = sizeof(a)/sizeof(a[0]);
3.經常會犯的錯誤,常常因為這個另程式編譯通過,而執行時就會奔潰。原因就是在main函式前定義了類似 int *a; 而在main中未對其進行分配空間!
int **b;
int main()
4.對於char陣列,我們可以直接輸出 cout<
#define max_len 1000
char b[max_len+10];
然後使b[1]~b[1000]賦值,另b[max_len+1]賦值為0(int 型的0),如此一來,就可以直接輸出!
5.如何讓int型指標指向二維陣列的首指標呢?
int a[100][100];
int **p = a;
6.如何給二維指標分配空間
這個很重要!經常用到哦!
我們都知道給一維陣列分配空間時:
int *a;
int main()
二維分配就有點小麻煩了呢!
a = new int*[100];
for(int i = 0; i < 100; i++)
首先:a = new int *[100]; 分配100個 int*型別的空間,
然後每個int*的空間都分配100個int型的空間。int *是陣列指標,就是陣列首元素的指標,由於二維陣列是m個長度為n的陣列,所以我們首先要給a分配m個指標,每個指標指向乙個陣列,然後給每個指標陣列(a[i]儲存的是指向陣列的指標)分配空間就可以了!第二步的分配空間類似與一維陣列的分配空間愛你,都是 new int[n].
注意:memset不能直接對二維陣列進行初始化,會出現錯誤!不行你就試一試~~。
附帶最長公共子串行的**吧。。
//最長公共子串行
#include#include#include#includeusing namespace std;
#define max_len 100
/*隨機長度且隨機值的兩個子串行*/
char *a1, *a2; //兩個隨機字串行
int **b, **c;
int len1 = 0;
int len2 = 0;
void getserials()
a1[len1] = 0;
for (int i = 0; i< len2; i++)
a2[len2] = 0;
}/*二維陣列c是儲存最長自序列的長度的,如c[i][j]儲存的是
序列長度為i和j的自序列長度;
而二維陣列b儲存的是各種方向,由這些方向可以還原子序列的
具體值。b的0,1,2代表三種情況
*/void lcslength(int m, int n, char *x, char *y, int **c, int **b)
else if (c[i - 1][j] >= c[i][j - 1])
else
}}void lcs(int i, int j, char *x, int **b)
else if (b[i-1][j-1] == 1) lcs(i - 1, j, x, b);
else lcs(i, j - 1, x, b);
}int main()
{ time_t start, end;
getserials();
//給二維陣列b,c分配記憶體
b = new int*[len1];
for (int i = 0; i
關於字元指標和字元陣列的一些錯誤
老犯此類錯誤 char p abc 則abc儲存在常量儲存區,而p直接指向了這個常量儲存區,所以不能改變abc的內容 p d 是錯誤的,因為是常量儲存區,不能改變。char p null p d 也是錯誤的。char p p d 也是錯誤的,提示指標沒有賦初值。以上幾種更不可以strcpy p,ab...
關於陣列和指標的一些理解
int a 3 int b a cout b 了解了上述原理後,我們來看看下面這種情況。陣列建立的方式有兩種。第一種 int arr new int 2 cout arr 第二種情況 int arr cout arr 第乙個輸出,接受引數是乙個陣列,隱式轉換成陣列首位址。第二個輸出 arr,這得到的...
一些關於陣列和指標的想法
指標是c的難點和精華,當他和陣列相遇時,如果沒有好好理清它們之間的關係和原理,那真是搞不清理還亂了。1 二維陣列a代表什麼含義?首先定義了乙個二維陣列a,當然我們必須把a看成乙個一維陣列,它有兩個 大 行 元素,每個 大 行 元素都由五個 小 列 元素,這是我們理解陣列的前提條件。第七行定義了乙個i...