数组和指针

数组和指针的不同之处:

  在使用数组和指针的时候,很多情况下数组和指针都是相通使用,所以我们说数组和指针有天生的姻缘,在讨论C语言数组和指针的不同点之后,我们再来回顾一下相同之处,这样就更加深入的掌握数组和指针。

------------------------------------------------------------------------------------------------

先来看一个简单的程序:

 在a.c中我们定义了一个简单的数组;

-----------------------------------   a.c  ---------------------------------------------------------------------------

 1 int a[5] = {1, 2, 3, 4}; 

-----------------------------------   b.c  ---------------------------------------------------------------------------

 1 #include<stdio.h>
 2 
 3 extern int a[5];
 4 
 5 int main(int argv, char **argv)
 6 {
 7     printf("指针方式:a[2] = %d.\n", *(a+2));
 8     printf("数组方式:a[2] = %d.\n", a[2]);   
 9     return 0;
10 }

 

这段代码很easy,轻松看出printf打印的值

 

 

将b.c修改,以指针的方式进行声明,

extern int a[5];修改为 extern int *a;

------------------------------- 修改后的b.c -----------------------------------------------------------------------------------

 1  1 #include<stdio.h>
 2  2 
 3  3 extern int *a;
 4  4 //extern int a[5];
 5  5 
 6  6 int main(int argc, char **argv)
 7  7 {
 8  8     printf("指针方式:a[2] = %d.\n", *(a+2));
 9  9     printf("数组方式:a[2] = %d.\n", a[2]); 
10 10     return 0;
11 11 }

 

这时候的运行结果还会和原来一样吗?

--------------------  亮点  -------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

为什么会发生段错误?可以思考下为什么。

 

----------------------------------------------------------------------------------------------------------------------------                                                       开始整理:指针和数组的不同

 

posted on 2015-12-09 10:57  岳睿_02  阅读(195)  评论(0)    收藏  举报

导航