【C語言】指針進(jìn)階第二站:指針數(shù)組!
指針進(jìn)階的第二站:指針數(shù)組到了!
上車上車!

@51CTO,博主:暮雪年華
指針數(shù)組
數(shù)組是一種類型的數(shù)的集合
整型數(shù)組的元素都是int類型
指針數(shù)組的元素都是指針變量
參考這一份示意圖

示例1:定義多個(gè)字符指針
在上一站的字符指針里面,提到了可以直接用指針來創(chuàng)建一個(gè)常量字符串
同理,我們可以將多個(gè)指針放在一塊,湊成指針數(shù)組,一次性創(chuàng)建多個(gè)指向常量字符串的指針

示例2:存放數(shù)組名的數(shù)組
在之前的學(xué)習(xí)中,我們知道:數(shù)組名代表數(shù)組首元素的地址
可以說,數(shù)組名本質(zhì)上也是一個(gè)指針
既然是指針,就能放進(jìn)指針數(shù)組里面
這串代碼中,我們需要了解的是arr[i][j]和*(*(arr+i)+j)之間的關(guān)系
以下內(nèi)容若有錯(cuò)誤,還請大家在評(píng)論區(qū)指正!
arr[i][j]和*(*(arr+i)+j)
它們都是訪問數(shù)組的形式,用到了不同的操作符
但表達(dá)的含義相同:下標(biāo)為i、j的元素
在內(nèi)存中,數(shù)據(jù)的存儲(chǔ)是連續(xù)的
創(chuàng)建一個(gè)二維數(shù)組,可以看到兩行的數(shù)據(jù)是連續(xù)存放在數(shù)組里面的
既然是連續(xù)的,我們就可以用指針++的形式來訪問二維數(shù)組里面的所有元素
數(shù)組名的本質(zhì)是地址,是該數(shù)組首元素的地址
二維數(shù)組的首元素是第一行,數(shù)組名arr就是第一行的地址
我們可以把二維數(shù)組的每一行理解為獨(dú)立的一個(gè)一維數(shù)組
這時(shí)候,二維數(shù)組的形式和上述代碼中int* arr[]數(shù)組的形式就相同了
int* arr[]和二維數(shù)組的不同
int*arr數(shù)組里的元素arr1,arr2,arr3的地址是連續(xù)存放的
這里設(shè)計(jì)到一個(gè)新概念:數(shù)組指針
將在下一節(jié)講解!

但是它們對(duì)應(yīng)的各自的數(shù)組內(nèi)數(shù)據(jù)并不連續(xù)
如:arr1和arr2這兩個(gè)數(shù)組各自元素的地址并不連續(xù)

示例3:存放二級(jí)指針的數(shù)組
既然一級(jí)指針可以放進(jìn)數(shù)組里,二級(jí)指針也是指針,同樣也能塞進(jìn)數(shù)組里
下面這串代碼里面的arr2就是一個(gè)存放二級(jí)指針的數(shù)組
你學(xué)會(huì)了嗎?下次給大家分享數(shù)組指針哦!
為了幫助大家,輕松,高效學(xué)習(xí)C語言/C++,給大家分享我收集的資源,從最零基礎(chǔ)開始的,幫助大家在學(xué)習(xí)C語言的道路上披荊斬棘!
微信公眾號(hào):C語言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!大家也要把握住大學(xué)的時(shí)光,抓住成長的每一次機(jī)會(huì)哦~
編程學(xué)習(xí)書籍分享:

編程粉絲交流:
