码迷,mamicode.com
首页 > 编程语言 > 详细

指针与数组、字符串

时间:2015-04-06 22:59:19      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

通过指针我们可以访问内存中任意地址,那么自然可以访问数组,因为数组在内存中占据了一段连续的空间,那么如何实现的呢?

 1 #include<stdio.h>
 2 
 3 int main(){
 4     //定义一个整型数组
 5     int array[4] = {7,15,3,9};
 6     //定义一个整型的指针
 7     int *p;
 8     //将数组的首元素地址赋值给指针p
 9     p = &array[0];
10     //打印出指针所指内存单元的值
11     printf("指针所指内存单元的值为%d\n",*p);
12     return 0;
13 }

运行结果:技术分享

代码的第9行是将数组的第0号位置的元素地址赋值给指针p,由于C中规定数组名代表数组首地址,也就是首元素的地址,所以第9行代码也可换成

p = array;

那么有些人就会疑问了,我要是想访问数组中其他元素呢?是不是还得定义另一个指针变量,让需要被访问的元素地址赋值给这个新的指针呢?答案是不需要

实际上从上面的p = array;代码中就能看出一些端倪,因为我们用array[2]时能直接访问数组的第2号元素,那么是不是可以用p[2]这种形式间接访问呢?

 1 #include<stdio.h>
 2 
 3 int main(){
 4     //定义一个整型数组
 5     int array[4] = {7,15,3,9};
 6     //定义一个整型的指针并初始化
 7     int *p = array;
 8     //利用指针遍历整个数组
 9     for (int i = 0; i < 4; i++) {
10         printf("第%d号元素为:%d\n",i, p[i]);
11     }
12     
13     return 0;
14 }

运行结果为技术分享

 

指针与数组、字符串

标签:

原文地址:http://www.cnblogs.com/oucding/p/4396891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!