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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是指针?什么是数组?指针和数组的关系?

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是指针?什么是数组?指针和数组的关系? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是指針?什么是數組?指針和數組的關系?


? ? 形象地講,我們可以把計算機的內存看作一條長街上的一排房屋,每個房間都可以容納數據并通過一個房號來表識。而表示每個房間房號的值我們可以稱為地址。或許這樣的比喻有局限性,畢竟真實地計算機內存是以數以萬計的bit位組成。

? ? ?⑴初始化:?

????????①最簡單的以 int *p 為例,初始化時內存里開辟了四個字節的空間。

? ? ? ? ? ? ? ? ?▇▇▇▇

????????②另一個聲明 ,現在,我們有兩個變量,下圖中顯示了后面那個未知內容的內存。

?????????????????????char ch = 'a';

?????????????????????char cp = &a;

? ? ? ? ? ? ? ? ▇→▇▓←(?)

? ? ? ? ? ? ??↗ ? ??↖

? ? ? ? ? ? (cp) ? ? ?(ch)?

???????⑵“*”的用法

????????????①?定義指針變量是

????????????② 對指針變量進行節引用是

?★注意1:若要實現地址的移動,是p++,而不是*p++

?★注意2:

??????????????int *p = NULL; ? //代表創建一個指針變量,并對它進行初始化。

? ? ? ? ? ? ? *p = NULL; ? ? ?//將訪問到的內容改為NULL。

?★注意3:對于數組int a[4],&a與a的區別是什么呢?&a與a的內容一樣,但&a+1增加了16個字節,而a+1增加了一個字節。原因是&a是整個數組的地址,而a是數組首元素的地址。


如下表格可以讓我們深刻地理解指針與數組的區別

a[]={1,2,3,4}char name[]="abcdef"char *name="abcdef"
sizeof(a)=16sizeof(name[0])=1sizeof(&name)=4
sizeof(&a)=16sizeof(&name)=4sizeof(*name)=1
sizeof(a+0)=4
sizeof(*name)=1sizeof(&name+1)=4
=4sizeof(*a)=4sizeof(&name+1)=4sizeof(name)=4
sizeof(a+1)=4sizeof(name+1)=4sizeof(name+1)=4
sizeof(&a)=4sizeof(name)=7strlen(name)=6
sizeof(&a[0])=4strlen(&name)=6strlen(&name)=6
sizeof(&a[0]+1)=4strlen(&name+1)=12strlen(&name+1)=隨機值



指針數組與數組指針的區別

指針數組:用于存儲指針的數組,即數組元素都是指針。

數組指針:指向數組的指針。


表達式類型
表示元素表示
int a[4]
整型數組含有4個元素的整型數組a[i]
int *a[4]數組指針a中元素為int型指針*a[i]或*(a[i])
int (*a)[4]數組指針指向數組a的指針(*a)[i]


▲int *: ?一次訪問四個字節.

▲char *: 一次訪問一個字節.








轉載于:https://blog.51cto.com/10798301/1720066

總結

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

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