数组指针的赋值与输出问题

 1 # include <stdio.h>
 2 
 3 void f(int * pArr, int len)
 4 {
 5     int i;
 6 
 7     for(i=0; i<len; i++)
 8         printf("%d ",*(pArr+i));
 9     printf("\n");
10 
11 
12 }                  //该函数实现对数组中的值的输出。
13 
14 int main(void)
15 {
16     int a[5] = {1,2,3,4,5};
17     int b[6] = {-1,90,45,35,54,22};
18     int c[100] = {1,31,34,11};
19 
20     f(a, 5);//a是int * 类型
21     f(b, 6);
22     f(c, 100);
23 
24     return 0;
25 }
/*
在Vc++6.0中显示的结果是:
====================================================
1 2 3 4 5
-1 90 45 35 54 22
1 31 34 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
====================================================

*/ 

 1 # include <stdio.h>
 2 
 3 void f(int * pArr, int len)
 4 {
 5      pArr[3] = 100;     // *(pArr+3) = 100; 为什么不是*pArr[3] = 100; 呢?注意与非数组指针的区别
 6 }
 7 
 8 int main(void)
 9 {
10     int a[6] = {1,2,3,4,5,6}; 
11     printf("a[3] = %d\n", a[3]);
12     f(a, 6);
13     printf("a[3] = %d\n",a[3]);//a[3]值已经改变
14 
15     return 0;
16 }
17 
18 /*在Vc++6.0中显示的结果是:
19 =================================================
20 a[3] = 4
21 a[3] = 100
22 =================================================

23 */ 

posted on 2012-09-04 19:01  Your Song  阅读(968)  评论(0编辑  收藏  举报

导航