C语言的问题,一维数组中,int a[10],*p; p=a和p=&a是不是一样的。

如题所述

第1个回答  2017-07-30
p = a;或者 p = &a[0];
p = &a;是错误的本回答被提问者采纳

C语言指针int a=10,*p,**p;在这儿p=a,*p=a,**p是一样的么?说详细...
不一样的,p=a,是表示p的指针指向a的地址,*p=a,表示a地址里面的内容,也就是10. 我们不能写p=10,只能写*p=10, **p=p,***p=*p,这个是我培训时学到的,意思和前面一样,p指向某个地址,*p指向某个地址里面的内容,这样记就好了,望采纳。。

*p=&a和*p=a的区别是什么?
1、一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2、*p=a的意思:将a的值赋给p指针指向的地址的值。3、p=&a的意思是:将a的地址赋给指针p。4、区别:*p是一个值;p是一个地址;两者完全不相同。介绍 指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针...

int *p, a[10]; p=&a 为什么非法
类型不匹配。改为:int (*p)[10],a[10];p=&a; \/\/这样p的类型与&a的类型就一致了。

...这两名可以等效么?作用和意义是不是一样的?
p=&a,意思是把a是地址给p,这个p定义的时候是一个指针变量,*p=a,也是这个意思,比如a=2,那么*p就是等于2,p是存放2这个值的空间的地址,可以等效。

c语言的 int a[10],*p; *p=a; 这样成立吗?求解释
定义p只是一维指针,它的值只能是指向一个整型的地址 p=a;是可以的 p = a的话,首先,p 本身未赋值初始化,其指向是不确定的 上述语句就是将a赋值给一个不确定的值,故会报错的 其次 假设 p 已初始化,由于a是一个地址,那么意味着 p 将是一个二维指针 (二维指针要这样定义:int **p;)

C语言中,p=&a和*p=&a有什么区别
p=&a;是将a的地址赋值给*p,结果会是一个十六进制的数。第二个是让p指向a的地址空间。*p的傎和a相等。int a=2,*p;p=&a;打印*P应该是一个地址值,很长一串,p=&a;打*P印结果会是2;

int *p=&a和*p=a有什么区别
1.一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2.*p=a的意思:将a的值赋给p指针指向的地址的值;3.p=&a的意思是:将a的地址赋给指针p;4.区别:*p是一个值;p是一个地址;两者完全不相同。5.*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;p是...

c语言中*p=a与*p=&a有什么区别
int a=3,*p=&a 也就是说在赋值时,int *p=&a 相当于 int *p,p=&a 它们的区别其实就是 int *p=&a是同时定义*p并对赋值p(即a的地址赋给P),而p=&a,只是对P赋值,没有定义指针变量。但要注意,只有在同时定义赋值时“*p=&a”这种写法才是对的 其他情况下不要用*p=&a,这种形式...

c语言指针问题,p=a和p=&a的区别是啥?哪个写法比较正规?
这个已经不是正不正规了,p=&a是错的。数组名就是首地址,但是可以写成p=&a[0]。正规肯定是p=a。

为什么C语言,数组 相邻两个元素地址相减,输出结果和显示结果不同。
C语言中两个地址相减指的是两个地址间数组元素的个数,而不是间隔的字节数。比如 int a[10],*p;p=a;a[1]-a[0] 值为1,而不是4 p+4 指的是p指针所指单元的后面第4个元素,即a[4],而不是a[1]。

相似回答
大家正在搜