C++ 二维数组和指针数组
C++ 二維數組和指針數組
開發工具與關鍵技術:C++、VisualStudio 作者:何任賢 撰寫時間:2019年04月10日 二維數組大家都很清楚,就是該數組包含的元素是一個數組,那么和指針數組又有什么關系呢?那么我先解釋一下指針數組是什么東西。首先指針和普通的變量是用來存放東西的,普通變量呢存放的是值,就是普通的值,而指針存放的是地址,那么大家都是存放東西,你可以建立數組存放,那么指針也可以,指針也可以建立數組存放多個地址,然后我們先看它們的代碼和結果,再來解析它們的不同之處。
二維數組:
void main()
{
int j = 0;
int a[3][3];
for (int i = 0; i < 3; i++)
{
for (int n = 0 ; n < 3 ; n++, j++)
{
a[i][n] = j;
}
}
for (size_t i = 0; i < 3; i++)
{
for (size_t n = 0; n < 3; n++)
{
cout << a[i][n] << " ";
}
}
cout << “\n”;
}
這是一個二維數組的賦值和輸出那么上面指針也是可以達到二維數組的效果的,那么它要怎么實現呢?它和二維數組又有什么不同?
指針數組:
void main()
{
int c[2] = { 0,1 }, e[3] = { 2,3,4 }, f[4] = {5,6,7,8};
int *b[3];
b[0] = c;
b[1] = e;
b[2] = f;
for (size_t i = 0; i < 2; i++)
{
cout << *(b[0]+ i) << " ";
}
for (size_t i = 0; i < 3; i++)
{
cout << *(b[1] + i) << " ";
}
for (size_t i = 0; i < 4; i++)
{
cout << *(b[2] + i) << " ";
}
cout << “\n”;
}
而且因為指針數組的存放的是地址,那么不同長度的數組的地址都是可以給指針數組保存的,而二維數組不行,因為二維數組在聲明時,就已經把它存放的數組的長度給固定了,是不可以改變的,指針可以達到存放不同長度的數組的效果,但是它和二維數組不同,二維數組的內存也是連續的,而指針數組的不是,所以指針數組就達不到通過地址加減來獲取數組里面存放的元素。
這就是二維數組和指針數組的不同之處,各有各的優勢和劣勢,我們也就可以根據自己需求來選擇。
總結
以上是生活随笔為你收集整理的C++ 二维数组和指针数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11个方法,打造用户增长体系
- 下一篇: 2021年Q3小红书美妆行业营销报告