怎樣定義一個指針,指向一個數(shù)組捅位?
1、用數(shù)組類型加 * 定義數(shù)組指針
代碼1:
#include <stdio.h>
int main()
{
? ? int i=0;
? ? typedef int (MYARR5)[5];//抽象出數(shù)組類型
? ? MYARR5 array;? // 用數(shù)組類型定義變量
? ? MYARR5 *parray;// 用數(shù)組類型定義指針變量
? ? 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、可以聲明數(shù)組指針類型姜胖,用數(shù)組指針類型直接定義數(shù)組指針變量
代碼:
#include <stdio.h>
int main()
{
? ? int i=0;
? ? //typedef int (MYARR5)[5];//抽象出數(shù)組類型
? ? 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慢蜓、直接定義數(shù)組指針變量的方法:
前兩種方法都是通過類型定義變量亚再,比較麻煩〕柯眨可以直接定義:int? (*parray)[5];
#include <stdio.h>
int main()
{
? ? int i=0;
? ? //typedef int (MYARR5)[5];//抽象出數(shù)組類型
? ? //typedef int (*PMYARR)[5];
? ? //PMYARR parray; //編譯器分配一個指針變量氛悬;
? ? int (*parray)[5];//直接定義一個指向數(shù)組的數(shù)組指針變量。
? ? 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語言中的比較難的語法:
數(shù)組類型镜遣,數(shù)組指針類型,數(shù)組指針變量
函數(shù)數(shù)據(jù)類型士袄,使用函數(shù)數(shù)據(jù)類型定義函數(shù)類型變量悲关,函數(shù)數(shù)據(jù)類型的指針