中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數組指針和指針數組的區別

發布時間:2020-08-07 08:27:06 來源:網絡 閱讀:424 作者:_xd_ 欄目:編程語言

數組指針:a pointer to an array ,指向數組的指針
指針數組:array of pointer ,用于存儲指針的數組,即數組元素都是指針
int (p)[6] 數組指針 :表示指向數組a的指針 元素表示:(a)[i] (指向一維數組的指針,也成行指針)
int p[6] 指針數組 :表示數組a中的元素都是int 型,即int型指針 元素表示:(a[i]) 或者a[i] ([]優先級高于
代碼:
#include<iostream>
using namespace std;
int main()
{
int a[4] = { 1,2,3,4 };
int
b[4]; //指針數組
int(c)[4]; //數組指針
c = &a; //讓c指向a的首地址
for (int i = 0; i<4; i++)
{
b[i] = &a[i]; //b數組的元素為指針,即元素內容為地址
}
cout <<
b[1] << endl; //b[1]=&a[1],即b[1]中為地址(該地址中存入的是數據2) , b[1]即取&a[1]中的元素內容,即2
cout << (
c)[2] << endl;//可將(c)看成數組名,相當于a,(c)[2]=a[2],即為3
return 0;
}
執行結果:
2
3

注意:定義了數組指針(c)[i],就必須給這個指針一個地址c=&a,不能不給指向(地址)就直接賦值((c)[i]=a[i]),否則會出錯
技巧:可以將數組指針的(*c)看成一個數組名使用

數組指針
int (p)[6] ()優先級高,說明p是一個指針,指向一個int型的一維數組,這個數組的長度是n,也就是p的步長為n,執行p+1(p要跨過n個整型數據的長度)
int a[3][4];
int (
p)[4]; //定義一個數組指針,指向含4個元素的以為數組
p=a; //將二維數組a的首地址賦給p,即a[0]或&a[0][0]
p++; //該語句執行后,即p=p+1,p跨過行a[0]指向了行a[1]

#include<iostream>
using namespace std;
int main()
{
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int(p)[4];
p = a;
cout << (
p)[0] << endl;
p++;
cout << (p)[0] << endl;
cout <<
((p)+1)<< endl; //((p)+1)相當于(p)[1] ,*p此時為一個地址

}
執行結果:
1
5
6

指針數組 int p[n]
[]優先級高,先與p結合成為一個數組,再由int
說明這是一個整型指針數組,它由n個指針lexington的元素組成(這里執行p+1是錯誤的,這樣賦值也是錯誤的:p=a,p是個不可預知的表示,只存在p[0],p[1]….p[n-1],它們分別是指針變量可以用來存放變量地址),可以這樣p=a;這里p表示指針數組第一個元素的值,a的首地址的值
int *p[3]; //表示一個一維數組內存放著三個指針變量,分別是p[0],p[1],p[2]
int a[3][4];
for(i=0;i<3;i++)
p[i]=a[i];

ps:數組指針只是一個指針變量,它占有內存中一個指針的存儲空間,指針數組是多個指針變量,以數組形式存在內存中,占有多個指針的存儲空間
指針數組要表示數組中第i行第j列的元素:
(p[i]+j) ((p+i)+j) ((p+i))[j] p[i][j]

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

花莲县| 阳新县| 峨边| 鱼台县| 德化县| 来安县| 竹溪县| 营口市| 五原县| 高阳县| 平顺县| 奉节县| 昆山市| 冕宁县| 新津县| 出国| 阳西县| 子长县| 阿巴嘎旗| 剑阁县| 城市| 隆回县| 吴堡县| 房产| 嘉兴市| 全州县| 靖远县| 金山区| 闵行区| 微博| 阿克苏市| 汉寿县| 老河口市| 天台县| 裕民县| 甘德县| 永清县| 谢通门县| 兴安县| 灯塔市| 墨脱县|