指针*p=a*p=b 是不是吧b的值赋给了p所占的内存空间?上面已经吧a赋值给了*p,p所指的地址是a在内存中第一个元素的地址,*p = a那为什么我后面把b 赋值给了 *p 地址还是没变呢? p[1]输出2 还是保留

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 01:40:35
指针*p=a*p=b 是不是吧b的值赋给了p所占的内存空间?上面已经吧a赋值给了*p,p所指的地址是a在内存中第一个元素的地址,*p = a那为什么我后面把b 赋值给了 *p 地址还是没变呢?  p[1]输出2 还是保留

指针*p=a*p=b 是不是吧b的值赋给了p所占的内存空间?上面已经吧a赋值给了*p,p所指的地址是a在内存中第一个元素的地址,*p = a那为什么我后面把b 赋值给了 *p 地址还是没变呢? p[1]输出2 还是保留
指针*p=a

*p=b 是不是吧b的值赋给了p所占的内存空间?
上面已经吧a赋值给了*p,p所指的地址是a在内存中第一个元素的地址,*p = a
那为什么我后面把b 赋值给了 *p 地址还是没变呢?  p[1]输出2 还是保留了a[2]数组的的第二个地址的值;
1.为什么p指针的地址没有变成b的?
2.为什么还有a[2]数组残留的值?(猜测是没有释放内存的原因,b的值只占了两个字节,所以a数组的残留值并没有清)
3.既然p是指向变量在内存中第一个单元(也可以叫变量的起始地址!语死早)的地址,那么我后面把b赋值给了指针所指的片内存空间,是不是地址也是b的?为什么还是a的地址?

指针*p=a*p=b 是不是吧b的值赋给了p所占的内存空间?上面已经吧a赋值给了*p,p所指的地址是a在内存中第一个元素的地址,*p = a那为什么我后面把b 赋值给了 *p 地址还是没变呢? p[1]输出2 还是保留
首先,a[2]是int型数组,那么a表示的是这个数组第一个元素的指针.
int * p = a; 这句的含义是定义一个指向int的指针p,并把a赋给p.
分开写你就懂了,即 int * p; p = a; 并不是你说的把a赋给*p.
这样赋值之后,p就有了和a相同的地址,也就是说现在p和a是等价的了.
这时*p代表p地址存储的int值,这个和a是一样的,都是1.
p[0]和*p是等价的都是1;p[1]是p下一个地址的值,当然也和a一样,是2.
注意*p = b; 这句和p = a要区分清楚.这里的b是int值,这句话意思是把b的值赋给p地址所存的值,也就是把刚才p地址里的1改成28.
p[1]仍然没变,还是2.

指针*p=a*p=b 是不是吧b的值赋给了p所占的内存空间?上面已经吧a赋值给了*p,p所指的地址是a在内存中第一个元素的地址,*p = a那为什么我后面把b 赋值给了 *p 地址还是没变呢? p[1]输出2 还是保留 两道关于null的c语言题目:1 设有定义:int x=0,*p;立刻执行以下语句,正确的是:a.p=x; b.*p=x;c.p=null; d.*p=null2设变量p是指针变量,语句p=null;是给指针变量赋null值,它等价于a.p= ; b.p=‘0’; C语言指向指针的指针的问题今日我在书上看到了一个例子,我简单写一下.有一个函数a(*b) int *p; p=b;P不是指向指针的指针吗,为什么定义是不是**P 一、单选题(共 35 道试题,共 70 分.)V 1.已有函数max(a,b)为了让函数指针变量p指向函数max正是确的赋V 1.已有函数max(a,b)为了让函数指针变量p指向函数max正是确的赋值方法是( )A.p=max;B.*p=max;C.p=m 不知道下面这道题应该选什么呢,设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是A float *p=1024; B int *p=(float x); C float p=&x; D; float *p=&x; 关于指针变量的问题首先定义数组int a[3];如果把a赋给一个指针变量p,那么p该如何定义?我觉得a是指向行的,而&a[0]才是指向元素的.所以不能把a赋给定义为int*p的指针变量p,而是赋给同样指向行 c++数据结构指针问题(就地逆置)p=head;while(head->next!=NULL){q=p;结点赋结点什么意思?p=head->next;指针赋结点什么意思?head->next=p->next;指针赋指针什么意思?p->next=q;}head=p;p=head;(求每一句的解释) A=B 将B的值赋给A,那么B还有值吗? c语言指针问题.经int *p后,使用指针有p与*p两种方式,有何不同?int i=1,j=2,*p,*q; p=&i;q=&j; 在经过以上操作后,执行*p=*q与p=q二者的区别?为什么第一种是将j的值赋给i,而第二种是p,q同指向j,*p=j. C语言规定,数组名代表数组的首地址,也就是第0号元素的地址.因此,下面两个语句等价:p=&a[0];p=a;在定义指针变量时可以赋给初值:int *p=&a[0];它等效于:int *p;p=&a[0];当然定义时也可以写成:int 以下能使指针变量p指向变量a的正确选项是?A.int a,*p=a; B.int a,p=a; C.int a,*p=*a;D.int a,*p=&a; (一道选择题)有关指针的定义和概念若有以下定义和语句double r=99,*p=&r;*p=r;则以下正确的叙述是________.A)以上两处的*p含义相同,都说明给指针变量p赋值B)在“double r=99,*p=&r; ”中,把r的地 32.假定一条定义语句为“int a[10],x,*p=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为(A.x=p[3]; B.x=*(a+3); C.x=a[3]; D.x=*p+3 表达式a=*p++中,p为一指针,该表达式运算的正确顺序应该是?A.a=*p,p=p+1 B.p=p+1 ,a=*p C.a=*p a=*p+1 DD .a=*p a=a+1 P(A∪B)=P(A)+P(B)-P(A∩B) 的证明 高中数学题 P(AB)=P(A)P(B)中的P(AB)是什么意思,是不是AB的交集? P(AB)=P(A)P(B)? 变量p为指针变量,若p=&a,下列说法不正确的是().A:&*p==&a B:*&a==a C:(*p)++==a++ D:*(p++)==a++此题中,D错在那里?