早教吧作业答案频道 -->其他-->
while(*p2++=*p1++);为什么赋不了值main(){char*p1=“name”;char*p2;p2=(char*)malloc(20);memset(p2,0,20);while(*p2++=*p1++);printf(“%sn”,p2);}这段程序为什么改变不了p2所指向的值,清高手解答
题目详情
while(*p2++=*p1++);为什么赋不了值main() { char*p1=“name”; char*p2; p2=(char*)malloc(20); memset(p2,0,20); while(*p2++=*p1++); printf(“%sn”,p2); } 这段程序为什么改变不了p2所指向的值,清高手解答
▼优质解答
答案和解析
我又被猛住了,丢脸阿…… 一瞬间看上去好像是没错,但是实际上有个非常严重的问题,就是p2指向的是复制到的字符串尾部!自然不会有数据输出了,并不是没复制过去,而是复制过去之后p2从指向缓冲区头变成了指向缓冲区尾部……比如把程序改成这样 intmain() { char*p1="name"; char*p2,*p3; p3=p2=(char*)malloc(20); memset(p2,0,20); while(*p2++=*p1++); printf("%s",p3); free(p3); return0; }
看了 while(*p2++=*p...的网友还看了以下:
在电源输出功率与外电阻的关系中当外电阻=内电阻时,电源输出功率取到最大值可是如果R外不变,R内从0 2020-04-08 …
电流I、电阻R、电功率P之间满足关系式P=I^2R.已知P=5W,回答下列(1)变量R是变量I的函 2020-06-14 …
BelieveB后面的e和l后面的i模糊了.Believe:[bi'li:v]问题1“第二个字母e 2020-06-28 …
Believe第二个字母e为什么读i第四个字母i为什么读i:Believe:[bi'li:v]问题 2020-06-28 …
JAVA异常类定义一个异常类noIntException,考查在[0,6]区间内变化的变量i,若i 2020-07-17 …
已知随机变量ξi满足P(ξi=1)=pi,P(ξi=0)=1-pi,i=1,2.若0<p1<p2< 2020-07-21 …
电容电压与电流的相量式的问题,跟虚数i有关书中相量式U=1/(iωC)*I=-i*1/(ωC)*I 2020-07-30 …
已知复数z=1-i则z^/z-1==(1-i)²/(-i)怎么变=i(1-2i+i²)的?这类题有什 2020-10-31 …
i为int型变量,且初值是3,有表达式i=(a=5,b=10)+(i+=b,b+=a),表达式的值是 2020-11-01 …
本人是C语言菜鸟,大神求打救,简述一下什么是指针,什么是的地址,以下题目的意思是什么?1、变量i的值 2020-11-26 …