C語(yǔ)言基礎(chǔ)知識(shí):指針和數(shù)組的區(qū)別是什么?
在C語(yǔ)言教程中我們使用通過(guò)數(shù)組名通過(guò)偏移和指針偏移都可以遍歷數(shù)組,那么指針和數(shù)組到底有什么區(qū)別??
由于數(shù)組中的數(shù)據(jù)在內(nèi)存中都是連續(xù)存放的,數(shù)組名默認(rèn)就是數(shù)組的首地址,也是一個(gè)特殊的指針;

二.指針和數(shù)組區(qū)別
1.通過(guò) sizeof 獲取大小
不管是數(shù)組還是指針變量,計(jì)算大小的時(shí)候都可以通過(guò)sizeof函數(shù),注意兩者使用的區(qū)別:
a.計(jì)算數(shù)組大小
數(shù)組所占存儲(chǔ)空間的內(nèi)存:sizeof(數(shù)組名);
數(shù)組的大小:sizeof(數(shù)組名)/sizeof(數(shù)據(jù)類型)

b.計(jì)算指針大小
在 32 位平臺(tái)下,無(wú)論指針的類型是什么,sizeof(指針名)都是 4 ,在 64 位平臺(tái)下,無(wú)論指針的類型是什么,sizeof(指針名)都是 8 ;

由此可見,sizeof函數(shù)計(jì)算指針大小的時(shí)候,與數(shù)據(jù)變量類型無(wú)關(guān),x86平臺(tái)下指針大小始終為4,x64平臺(tái)下指針大小始終為8;
2.指針和數(shù)組賦值方式不同
a.指針賦值
指針很靈活,它可以指向任意類型的數(shù)據(jù)。指針的類型說(shuō)明了它所指向地址空間的內(nèi)存。
b.數(shù)組賦值
數(shù)組在內(nèi)存中是連續(xù)存放的,開辟一塊連續(xù)的內(nèi)存空間。數(shù)組可以根據(jù)數(shù)組的下進(jìn)行訪問(wèn),多維數(shù)組實(shí)際上由多個(gè)一維數(shù)組夠成,數(shù)組的賦值這里不再重復(fù)講解。
3.指針是指針變量,數(shù)組是指針常量
常量:常量的值始終是固定的,不能被修改;
變量:變量的值可以任意修改;
那么指針和數(shù)組區(qū)別在哪呢?

寫法一是正確的,常規(guī)操作;
寫法二是錯(cuò)誤的,數(shù)組名默認(rèn)指向數(shù)組的首地址,是不能背修改的;
總結(jié):所以說(shuō)數(shù)組是指針常量,不能被修改;指針是變量可以被隨意修改;
為了幫助大家,輕松,高效學(xué)習(xí)C語(yǔ)言/C++,給大家分享我收集的資源,從最零基礎(chǔ)開始的,幫助大家在學(xué)習(xí)C語(yǔ)言的道路上披荊斬棘!
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!大家也要把握住大學(xué)的時(shí)光,抓住成長(zhǎng)的每一次機(jī)會(huì)哦~
編程學(xué)習(xí)視頻分享:

粉絲編程交流:
