rpct.net
当前位置:首页 >> C语言二维数组指针变量是什么?int (*p)[2]什么意思? >>

C语言二维数组指针变量是什么?int (*p)[2]什么意思?

二维数组指针变量形式如下:类型名 (*数组名)[数组行数][数组列数] 如:int (*p)[2][3]; // 定义一个int类型的二维数组指针变量,数组中每个元素都是一个指针 int (*p)[2]表示定义一个数组指针,只是是一个一维的数组指针,数组中每个元素(共2个元素)都是一个int类型的指针变量,指针指向的地址就需要后续程序给出,不然会变为野指针.

int * p〔2〕 定义的是指针数组,它首先是一个数组,它的元素是指针.数组里有2个指针元素

**可以认为是二维数组 因为*p可以指向一个指针,这个指针可以是一个数组的头指针.也可以是一个字符串数组,那么*p就是一个字符串,但事实上字符串数组和二维数组实际上是一样的

指针是C语言的精髓,学好C语言必须得学好指针!祝你学业有成!!**p是二级指针.(*P)[ ]是数组指针.*p[ ]是指针数组.所谓二级指针:如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量.就会出

上边实际上是 int (*p)[2];是声明了一个数组指针.是指向数组的一个指针,如int (*p)[10] 表示一个指向10个int元素的数组的一个指针.

*是指针运算符……*p=*a就是把a所指向的地址的值赋给b所指向地址的值.&是取地址运算符……p=&a就是让指针p指向a的地址(p为指针类型)

这两个意义不同int(*p)【4】表示p是个指针,指向一个存储四个int数据的空间,这就是所谓的数组指针,这里的括号只是优先级作用,没有函数的意思int *p【4】 表示p是个数组,它有四个元素,元素类型是int *指针,此之谓指针数组

前者是二级地址,就是地址的地址.后者是一级地址,虽然指向的也是一个地址,但是定义的时候申明的是一级地址.

行指针其实就是二级指针,也就是说它指向一个一维数组,int a[2][3]; a[0] a[1] 就是行指针 这么看就明白了 int a[][3]={a[0],a[1]} 而a[0] a[1]本身又是一个数组

表示指向指针的指针,int a = 1;int *p = &a; //p指向aint **pp = &p; //pp指向p

网站首页 | 网站地图
All rights reserved Powered by www.rpct.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com