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