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

数组指针和指针数组

时间:2018-05-04 15:22:03      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:错误   数组的指针   str   举例   数组元素   二维   bsp   arc   []   

数组指针(也称为行指针)

定义:int (*p)[n];

注释:()优先级高,首先说明p是一个指针,指向一个整型的一维数组,一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨越n个整型数据长度。

举例说明:

int a[3][4];

int (*p)[4];

p=a;//将二维数组的首地址赋给p,也就是a[0]或&a[0][0]

p++;//该语句执行后,p=p+1;p跨过a[0][]指向a[1][]

因此,指向数组的指针也称指向一维数组的指针,亦称为行指针。

 

指针数组

定义:int *p[n];

注释:[]优先级高,先与p结合组成一个数组,再由int*说明这是一个指针数组,它是有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,p=a的赋值是错误的,因为p是不可表示,只存在p[0],p[1],....,p[n],而它们分别是指针变量可用于存放变量的地址。但可这样表示*p=a,*p表示指针数组的第一个元素的值,a的首地址。

举例说明:

int *p[3];

int a[3][4];

for(int i=0;i<3;i++)

p[i]=a[i];//int *p[3]表示一个一维数组内存放三个指针变量,分别是p[0],p[1],p[2],所以要分别赋值。

 

数组指针和指针数组的区别

数组指针只是一个指针变量,类似于一个二维数组,它占有内存中一个指针的存储空间。

指针数组是一个数组,包含多个指针变量,以数组的形式存在内在中,占有多个指针存储空间。

 

http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html

数组指针和指针数组

标签:错误   数组的指针   str   举例   数组元素   二维   bsp   arc   []   

原文地址:https://www.cnblogs.com/MonkeyTina/p/8990547.html

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