數組類型和多維數組本質-2:數組指針類型

怎樣定義一個指針,指向一個數組?

1、用數組類型加 * 定義數組指針

代碼1:

#include <stdio.h>

int main()

{

? ? int i=0;

? ? typedef int (MYARR5)[5];//抽象出數組類型


? ? MYARR5 array;? // 用數組類型定義變量

? ? MYARR5 *parray;// 用數組類型定義指針變量

? ? parray=&array;

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? (*parray)[i]=i+1;? // 必須特別注意parray加星號*后,要加括號,防止與后面的中括號結合。不然會造成內存非法訪問!

? ? }

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? printf("array[%d]: %d \n ", i, (*parray)[i]);

? ? }

? ? return 0;

}


2、可以聲明數組指針類型,用數組指針類型直接定義數組指針變量

代碼:

#include <stdio.h>

int main()

{

? ? int i=0;

? ? //typedef int (MYARR5)[5];//抽象出數組類型

? ? typedef int (*PMYARR)[5];

? ? PMYARR parray; //編譯器分配一個指針變量;

? ? int array[5];


? ? parray=&array;

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? (*parray)[i]=i+1;? // 必須特別注意parray加星號*后,要加括號,防止與后面的中括號結合。不然會造成內存非法訪問!

? ? }

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? printf("array[%d]: %d \n ", i, (*parray)[i]);

? ? }


? ? return 0;

}

3、直接定義數組指針變量的方法:

前兩種方法都是通過類型定義變量,比較麻煩??梢灾苯佣x:int? (*parray)[5];

#include <stdio.h>

int main()

{

? ? int i=0;

? ? //typedef int (MYARR5)[5];//抽象出數組類型

? ? //typedef int (*PMYARR)[5];

? ? //PMYARR parray; //編譯器分配一個指針變量;

? ? int (*parray)[5];//直接定義一個指向數組的數組指針變量。


? ? int array[5];


? ? parray=&array;

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? (*parray)[i]=i+1;? // 必須特別注意parray加星號*后,要加括號,防止與后面的中括號結合。不然會造成內存非法訪問!

? ? }

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? printf("array[%d]: %d \n", i, (*parray)[i]);

? ? }

? ? return 0;

}


c語言中的比較難的語法:

數組類型,數組指針類型,數組指針變量

函數數據類型,使用函數數據類型定義函數類型變量函數數據類型的指針

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容