44问答网
所有问题
给数组指针赋值 int a[][],(*p)[] 为什么给数组指针赋值时p=a可以而p=a[0]与p=&a[0][0]就不行了
如题所述
举报该问题
推荐答案 2017-01-09
a是个二维数组,p是个数组的指针,从原理来上说二者是差不多的
p=a没问题
p=a[0]这里a[0]是一个数组,而p是数组的指针,所以是错的 应该这样p=&a[0]
p=&a[0][0] ;&a[0][0]其实和a[0]没什么区别,所以也不行
追问
那么p=&a[0]行吗?&a呢?
追答
p=&a[0]是可以的
a[0]是一个数组 ,&a[0]是数组的地址,p正好是数组的指针,所以是正确的
&a不行
追问
O(∩_∩)O谢谢
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://44.wendadaohang.com/zd/GYVGKYYYYGVR3VYVYVK.html
相似回答
...个
数组和
一个
指针
int
a[
10]; int
*p
;
为什么p=a
;是正确的而a
=p
是...
答:
解释如下:数组也是一个
指针,
但数组在编译的时候地址是已经确定的,是不能改变的。也就是说你
可以给数组
对所指向的地址
赋值,
如下:*a=10;但不可以对数组变量赋值,如:a=p;纯指针更加灵活,你可以对它本身赋值,也就是改变它所指向的地址,也可以对它所指向的址赋值。如果执行
p=a
;则p也指向了a...
a是
数组
名p是
指针
那
*p=a和p=a
有
什么
区别
答:
首先你要明白,a是个十六进制的地址常量,a其实就是a[0]这个数值的地址,也就是a
=&a[0] ,
p这个字母一般把它定义为地址, *p就是p指向的数值的值,你却把一个值定义为一个地址
(*p=a
这种写法是错误的),不符合常理。不能这样定义, 只可定义为p等于a ,也就是*p等于
a[0],
p指向a...
int
(*p)[
4
]和
int
a[
4]; int *
p=a
;有本质区别么
,
int (*p)[4]如何...
答:
第一个是指针,指向的是有4个元素的数组,是一个
数组指针
(不是
指针数组
)。
int
a[
4];int *
p=a,
把a的首地址
赋值给
p
,p=a
;int main (){ int a[4]={0};int
(*p
i)[4];pi=a;return 0;}
数组a[][],指针*p
p=a
,p++; p是怎么移动的
答:
首先,p指向二维
数组,
那么p[i]表示的就是一个一维
数组a[
i
](a[
i]是
数组而
不是元素!
),p[
i][j]表示的才是数组元素a[i][j];现在让p指向a[i][j]的地址,那么p++之后,p就指向a[i+1][j]的地址,正好是移了一个数组的长度。楼主可以随便编个小程序测试一下,比如新建一个a[3][3]...
大家正在搜
指针数组和数组指针
c语言指针数组和数组指针
数组指针和指针数组的区别
指针给数组赋值
指针数组的赋值与引用
指针数组如何赋值
用指针将两个数组赋值
c语言指针数组赋值
指针与数组
相关问题
为什么int a[3][4],int(*p)[4] p=a ...
c语言中,怎么可能将数组指针这样赋值?int (*p)[3]...
int a[5][5]={0}; int *p[5]; 为什...
int a[10],*p;则将数组元素a[8]的地址赋给指针...
数组指针p,二维数组a[3][4]有如下赋值方法:*p = ...
已知数组A和指针p定义为:int A[20][10],*p;...
C语言中,关于指针的赋值问题,例如: int a[]={1,...
定义数组a[10] *p,为什么*p=a和p=a效果一样