目錄
前言
1.二級指針
2.指針數組
3.指針數組模擬二維數組
?
前言
Hello,小伙伴們我又來了,上期我們講到了數組名的理解,指針與數組的關系等知識,那今天我們就繼續深入到學習指針域數組的練聯系,如果喜歡作者菌生產的內容還望不要忘了點贊,關注,評論。好了,廢話不多說,要是想要更加深入的學習,也可以觀看作者菌往期的文章哦。
1.二級指針
指針變量也是變量,是變量就有地址,那指針變量的地址存放在哪??
像這樣的寫法就是二級指針:即用來存放一級指針的地址。?
對于二級指針的運算有:
*ppa 通過對ppa中的地址進?解引?,這樣找到的是 pa , *ppa 其實訪問的就是 pa .
int a = 20;
*pa = &a;// 等價于 pa = &b;
?**ppa 先通過 *ppa 找到 pa ,然后對 pa 進?解引?操作: *pa ,那找到的是 a
**ppa = 30;// 等價于 *pa = 30;
// 等價于 a = 30;
2.指針數組
指針數組是指針還是數組?
我們類??下,整型數組,是存放整型的數組,字符數組是存放字符的數組。
那指針數組呢?是存放指針的數組。
?指針數組的每一個元素都是用來存放指針的。
如圖:
指針數組的每一個元素是地址,又可以指向一塊區域。?
3.指針數組模擬二維數組
#include <stdio.h>int main(){int arr1[] = {1,2,3,4,5};int arr2[] = {2,3,4,5,6};int arr3[] = {3,4,5,6,7};//數組名是數組?元素的地址,類型是int*的,就可以存放在parr數組中int* parr[3] = {arr1, arr2, arr3};int i = 0;int j = 0;for(i=0; i<3; i++){for(j=0; j<5; j++){printf("%d ", parr[i][j]);}printf("\n");}return 0;}
parr[i]是訪問的parr的元素,parr[i]找到的數組元素的指向整形一維數組,parr[i][j】就是一維數組中的元素?。
上述的代碼模擬出?維數組的效果,實際上并?完全是?維數組,因為每??并?是連續的
好,今天的分享就到這里,咱們下次再見,拜拜!!?