在C語言教程中我們使用通過數(shù)組名通過偏移和指針偏移都可以遍歷數(shù)組,那么指針和數(shù)組到底有什么區(qū)別??
由于數(shù)組中的數(shù)據(jù)在內(nèi)存中都是連續(xù)存放的,數(shù)組名默認就是數(shù)組的首地址,也是一個特殊的指針;
二.指針和數(shù)組區(qū)別
1.通過 sizeof 獲取大小
不管是數(shù)組還是指針變量,計算大小的時候都可以通過sizeof函數(shù),注意兩者使用的區(qū)別:
a.計算數(shù)組大小
數(shù)組所占存儲空間的內(nèi)存:sizeof(數(shù)組名);
數(shù)組的大?。簊izeof(數(shù)組名)/sizeof(數(shù)據(jù)類型)
b.計算指針大小
在 32 位平臺下,無論指針的類型是什么,sizeof(指針名)都是 4 ,在 64 位平臺下,無論指針的類型是什么,sizeof(指針名)都是 8 ;
由此可見,sizeof函數(shù)計算指針大小的時候,與數(shù)據(jù)變量類型無關(guān),x86平臺下指針大小始終為4,x64平臺下指針大小始終為8;
2.指針和數(shù)組賦值方式不同
a.指針賦值
指針很靈活,它可以指向任意類型的數(shù)據(jù)。指針的類型說明了它所指向地址空間的內(nèi)存。
b.數(shù)組賦值
數(shù)組在內(nèi)存中是連續(xù)存放的,開辟一塊連續(xù)的內(nèi)存空間。數(shù)組可以根據(jù)數(shù)組的下進行訪問,多維數(shù)組實際上由多個一維數(shù)組夠成,數(shù)組的賦值這里不再重復講解。
3.指針是指針變量,數(shù)組是指針常量
常量:常量的值始終是固定的,不能被修改;
變量:變量的值可以任意修改;
那么指針和數(shù)組區(qū)別在哪呢?
寫法一是正確的,常規(guī)操作;
寫法二是錯誤的,數(shù)組名默認指向數(shù)組的首地址,是不能背修改的;
總結(jié):所以說數(shù)組是指針常量,不能被修改;指針是變量可以被隨意修改。
審核編輯:湯梓紅
-
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137782 -
指針
+關(guān)注
關(guān)注
1文章
481瀏覽量
70611 -
數(shù)組
+關(guān)注
關(guān)注
1文章
417瀏覽量
26033
原文標題:C語言基礎(chǔ)知識:指針和數(shù)組的區(qū)別是什么?
文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
C語言指針和數(shù)組的錯誤用法
C語言數(shù)組和指針的區(qū)別
![<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>數(shù)組</b>和<b class='flag-5'>指針</b>的<b class='flag-5'>區(qū)別</b>](https://file1.elecfans.com/web2/M00/88/DB/wKgZomR1ZZmAbWULAACR9Zly394623.jpg)
評論