int *p int a[4][5] p=a和p=&a[0][0]的区别

如题所述

第1个回答  2011-12-28
有区别,a是行地址 &a[][]是列地址
a和&a[]等价
上面其实a和&a[],&a[][]是一个地址
但是若p=a;p++就是&a[1]
p=&a[][];p++就是&a[0][1];
p=a;p++和&a[1]等价本回答被网友采纳
第2个回答  2011-12-29
p=a,p是指向a的首地址也就是首行地址,p=&a[0][0],是指向首行地址的首个地址值
第3个回答  2011-12-28
好像没区别吧

int *p int a[4][5] p=a和p=&a[0][0]的区别
有区别,a是行地址 &a[][]是列地址 a和&a[]等价 上面其实a和&a[],&a[][]是一个地址 但是若p=a;p++就是&a[1]p=&a[][];p++就是&a[0][1];p=a;p++和&a[1]等价

定义二维数组指针 int a[4][5];int *p;p=*a 中,*a中的*是什么意思
a是一个二维数组,换言之是一个由一维数组组成的数组,a中的每个元素都是一个int[5]的数组。*a等价于a[0]表示取a的第一个元素即第一行的那个int[5]数组。然后将这个数组赋给p,等价于将这个数组首元的地址赋给p。

c语言数组中*p=a,与p=&a[0],有什么区别?跪求!!!
如果a是数组,那么没区别,都指向数组第一个元素

*P=&a[0] 和P=&a[0]有什么区别
int *p;p=&a[0];指针p会有一个自己的内存地址,通常占用4个字节(比如初始地址是0x22222222)。p的值是&a[0],也就是说从0x22222222开始,后面4个字节中存储的值是0x11111111。p的值就等于p所指向的内存地址中存储的值,也就是a[0]。所以*p等于1。如果*p=&a[0]的话,很容易出问题。比如...

int *p=&a和*p=a有什么区别
3.p=&a的意思是:将a的地址赋给指针p;4.区别:*p是一个值;p是一个地址;两者完全不相同。5.*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;p是指针,可以理解为所指向的值的地址,*p就是取p指针指向的地址的值,&a就是取a的地址。

...定义指针变量int *p,那么请问p=a与p=&a的区别是什么
在数组中,数组名表示首地址常量。a等同于&a[0]。所以p=a。就是p指向a首地址。p=&a是错的,a已经是地址里。可以写p=&a[0]。

*p=a[0] p=&a[0] 的区别
p=a[0]是指将p指向的空间内容赋值为a[0]的值 p=&a[0]是指将p指针指向的空间更改为a[0]存放的空间 这两个完全不一样,虽然现在访问*p值一样,但是原理完全不一样

int a[5][5]={0}; int *p[5]; 为什么不能p=a呢
他们自然不会舒服的,因此造成形参不一,发生冲突 ③回到①,因为p[i]为列指针,因此赋值时 同一般的列指针相同,如int *fp;访问a[5][5]时,必须给fp赋值成fp=a[0],这样fp=&a[0][0],同理p[0]=a[0],这样p[0]=&a[0][0]访问数组时直接可以是 *(p[i]+j)或*p[i][j]...

c语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!!
区别很大。第一个int *p = a;这是把a给一个指针,一般a是指针或数组,否则可能会造成很大错误。int *p = &a;这是把a的地址给p,一般a可以是一个整型变量。

C语言中*p=a[0]与p=a[0]有什么区别?
有啊,*p是个指针,他储存的是一个变量的地址。你把A[0]里的数据赋给他,是储存在那个变量中,不是在存*p中。另一个P是个变量,A[0]中的数据时存在P中 例如:int *p;p=&b;p=a[0];b==a[0] 值是放在b中 另一个是放在P中 ,不同的 ...

相似回答
大家正在搜