日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

C++ 二维数组和指针数组

發布時間:2025/3/15 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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++ 二维数组和指针数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。