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