int *a、b[10]、**c a是一个指针变量,他的地址是多少? 如果给它赋值一个
int*a、b[10]、**ca是一个指针变量,他的地址是多少?如果给它赋值一个地址a=b那么c=&a,c取地址取的是谁的地址难道a的地址不是b?如果c=&a,c取到的是...
int *a、b[10]、**c
a是一个指针变量,他的地址是多少?
如果给它赋值一个地址
a=b
那么c=&a,c取地址取的是谁的地址难道a的地址不是b?
如果c=&a,c取到的是b这个地址,为什么又可以赋值给指针的指针c?
上面的a=b到底什么关系,难到不是把b的地址赋值给a,a就是b 展开
a是一个指针变量,他的地址是多少?
如果给它赋值一个地址
a=b
那么c=&a,c取地址取的是谁的地址难道a的地址不是b?
如果c=&a,c取到的是b这个地址,为什么又可以赋值给指针的指针c?
上面的a=b到底什么关系,难到不是把b的地址赋值给a,a就是b 展开
1个回答
展开全部
int *a,b[10],**c;
》》》a是指针, b是数组, c是二维指针
a是一个指针变量,他的地址是多少?
》》》a的地址是系统分配的, 表示为&a, &a的类型是int **型。
如果给它赋值一个地址
a=b
》》》a=b是赋值a,改变的是a的值,而不是a的地址。 a的地址是不可能改变的。
那么c=&a,c取地址取的是谁的地址难道a的地址不是b?
》》》这个是取a的地址赋值给c, 是a的地址,不是b的。 赋值a=b的时候,只是把b的值给a了,和b的地址没关系。 就像 int a,b=1; int *p; a=b只是赋值, p=&a还是取a的地址而不是b的。 这个原理,和你说的本质是相同的。
如果c=&a,c取到的是b这个地址,为什么又可以赋值给指针的指针c?
》》》c赋值的是a的地址,不是b的地址。 a的地址是int **型,可以赋值给c。 而b是数组,b的地址&b其实是数组指针, 如果真c=&b那就会出错了,访问**c的时候会挂掉。 你可以试试。
上面的a=b到底什么关系,难到不是把b的地址赋值给a,a就是b
》》》就像之前说的,a=b只是简单的赋值,别因为是数组或者指针就想太多。 变量间赋值,如果没有&取地址,那就不涉及地址。
》》》a是指针, b是数组, c是二维指针
a是一个指针变量,他的地址是多少?
》》》a的地址是系统分配的, 表示为&a, &a的类型是int **型。
如果给它赋值一个地址
a=b
》》》a=b是赋值a,改变的是a的值,而不是a的地址。 a的地址是不可能改变的。
那么c=&a,c取地址取的是谁的地址难道a的地址不是b?
》》》这个是取a的地址赋值给c, 是a的地址,不是b的。 赋值a=b的时候,只是把b的值给a了,和b的地址没关系。 就像 int a,b=1; int *p; a=b只是赋值, p=&a还是取a的地址而不是b的。 这个原理,和你说的本质是相同的。
如果c=&a,c取到的是b这个地址,为什么又可以赋值给指针的指针c?
》》》c赋值的是a的地址,不是b的地址。 a的地址是int **型,可以赋值给c。 而b是数组,b的地址&b其实是数组指针, 如果真c=&b那就会出错了,访问**c的时候会挂掉。 你可以试试。
上面的a=b到底什么关系,难到不是把b的地址赋值给a,a就是b
》》》就像之前说的,a=b只是简单的赋值,别因为是数组或者指针就想太多。 变量间赋值,如果没有&取地址,那就不涉及地址。
追问
因为我记得以前好像有个人说过因为数组名是一个地址,所以在赋值数组名的时候当地址来看待
例如
int *b,a[10]
b=a,就是把数组首地址赋值给b。
所以我听了你说后,我知道了指针变量是有地址的而且这个地址是系统定的一般用&b来表示指针变量b的地址。
那我可不这样认为指针变量准确来说不是地址,在使用一个指针变量的时候不能像数组名一样直接使用,需要加取地址符合&
追答
看具体情况
指针变量本身有地址 它的值也是另外一个地址,这两个地址的值,以及含义都是不同的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询