在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語言/C ,給大家分享我收集的資源,從最零基礎開始的,幫助大家在學習C語言的道路上披荊斬棘!
編程學習書籍分享:
編程學習視頻分享:
整理分享(多年學習的源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比自己琢磨更快哦!大家也要把握住大學的時光,抓住成長的每一次機會哦~
對于C/C 感興趣可以關注小編在後台私信我:【編程交流】一起來學習哦!可以領取一些C/C 的項目學習視頻資料哦!已經設置好了關鍵詞自動回複,自動領取就好了!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!