编程语言
首页 > 编程语言> > C/C++指针数组与数组指针的区别

C/C++指针数组与数组指针的区别

作者:互联网

1、指针数组与数组指针的区别:

    什么东西在后面就是什么东西

 

1.1、指针数组:

    本质就是数组;多个一级指针的集合;对于指针数组通常是用来处理字符串的;

    定义指针数组:int* pArray[3]

 1 //指针数组充当函数参数
 2 void myPrintf(char* pArray[], int len)
 3 {
 4     for (int i = 0; i < len; i++)
 5     {
 6         printf("%s", pArray[i]);
 7     }
 8 }
 9 
10 
11 int main()
12 {
13     //定义一个字符数组并初始化
14     char Array[5] = "qwer";
15 
16     //定义一个指针数组并初始化
17     char* pArray[3] = { "abcd","efjf","gsdfe" };
18 
19     printf("Array[5] = %s\n", Array);
20 
21 
22     printf("通过数组下标来访问:\n");
23     for (int i = 0; i < 3; i++)
24     {
25         printf("%s", pArray[i]);
26     }
27 
28 
29     printf("\n通过指针偏移来访问:\n");
30     for (int i = 0; i < 3; i++)
31     {
32         printf("%s", *(pArray + i));
33     }
34 
35     printf("\n\n");
36     myPrintf(pArray,3);
37 
38     return 0;
39 }

 

1.2、数组指针:

    本质就是指针;产生的是一个指针变量,指针变量指向的是一个数组;对于数组指针通常是用来表示二维数组的;

    定义数组指针:int(*pArray)[3]

 1 //数组指针充当函数参数
 2 void myPrintf(int(*pArray)[4], int row, int clos)
 3 {
 4     printf("数组指针充当函数参数:\n");
 5     for (int i = 0; i < row; i++)
 6     {
 7         for (int j = 0; j < clos; j++)
 8         {
 9             printf("%d\t", pArray[i][j]);
10         }
11         printf("\n");
12     }
13 }
14 
15 
16 int main()
17 {
18     int Array[3][4] = { {2,1,4,0},
19                         {3,7,2,5},
20                         {5,9,6,6}
21                       };
22     //定义一个数组指针并初始化
23     int(*pArray)[4] = Array;
24 
25 
26     printf("通过数组下标来访问:\n");
27     for (int i = 0; i < 3; i++)
28     {
29         for (int j = 0; j < 4; j++)
30         {
31             printf("%d\t", pArray[i][j]);
32         }
33         printf("\n");
34     }
35 
36     printf("通过指针偏移来访问:\n");
37     for (int i = 0; i < 3; i++)
38     {
39         for (int j = 0; j < 4; j++)
40         {
41             printf("%d\t", *(*(pArray+i)+j));
42         }
43         printf("\n");
44     }
45 
46     myPrintf(Array, 3, 4);
47 
48     return 0;
49 }

 

 

搜索

 

 

 

 

 

 

复制

<iframe height="240" width="320"></iframe>

标签:int,pArray,C++,++,数组,printf,指针
来源: https://www.cnblogs.com/zhuchunlin/p/15896868.html