日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++指针数组详解

發布時間:2024/7/23 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++指针数组详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數組名都表示第一個元素的地址,比如int a[3],則a表示&a[0]

指針數組也是數組,它與普通數組區別是兩者元素不一樣

int數組每個元素都是int型,數組名a對應首元素a[0]的地址,因此數組名a是int*型

而指針數組,比如int *p[10],其每個元素都是int*型,數組名p對應首元素p[0]的地址,因此數組名p是int**型

int *是指向int型數值地址的指針

int**是指向指針變量地址的指針

所以當指取值的時候,第一個只要一個*就能答得到地址對應的值。而第二個需要2個*。

下面舉一個例子:

void main(int argc, char *argv[]) {int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};int *p[3];p[0] = a[0]; //a[0]與&a[0][0]等同,因此p[0]儲存a[0][0]的地址p[1] = a[1]; //p[1]儲存a[1][0]的地址p[2] = a[2]; //p[2]儲存a[2][0]的地址cout<<p<<endl; //指針數組第一個元素p[0]的地址,0019FEF4cout<<*p<<endl; //指針數組第一個元素p[0]的內容,即&a[0][0],0019FF00cout<<&a[0][0]<<endl; //0019FF00cout<<**p<<endl; //p[0]中儲存的地址所指的內容,即a[0][0],1cout<<p+1<<endl; //指針數組第二個元素p[1]的地址,0019FEF8cout<<*(p+1)<<endl; //指針數組第二個元素p[1]的內容,即&a[1][0],0019FF10cout<<&a[1][0]<<endl; //0019FF10cout<<**(p+1)<<endl; //p[1]中儲存的地址所指的內容,即a[1][0],5int **q;q = p; //指針數組p是int*類型,因此其數組名p是int**類型printf("%d\n", **q);q++; //相當于上面的p+1printf("%d\n", **q); //5 }

?

總結

以上是生活随笔為你收集整理的C++指针数组详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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