main(){ char *p,*q; p=(char*)malloc(sizeof(char)*20);q=p; sc
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 20:21:36
main(){ char *p,*q; p=(char*)malloc(sizeof(char)*20);q=p; scanf("%s%s",p,q);printf("%s%s",p,q); }
但用vc6.0试后,答案为defdef,不信你试,
但用vc6.0试后,答案为defdef,不信你试,
如果:
输入:abc def(回车)
输出:defdef
而不是楼上说的abcdef
因为
p=(char*)malloc(sizeof(char)*20); //为p创建堆内存
q=p; //将p创建的堆内存赋值给q
//也就是说,p,q是指向相同的内存
所以说,
输入:abc def(回车) //实质是先把abc输入p指向的内存,再把
//def输入q指向的内存
//由于q,p所指向的内存是同一内存
//所以,值def覆盖了值abc
因而,内存中只有值def
在输出时,先输出p,再输出q,所以输出def后再输出def
故:
如果:
输入:abc def(回车)
输出:defdef
输入:abc def(回车)
输出:defdef
而不是楼上说的abcdef
因为
p=(char*)malloc(sizeof(char)*20); //为p创建堆内存
q=p; //将p创建的堆内存赋值给q
//也就是说,p,q是指向相同的内存
所以说,
输入:abc def(回车) //实质是先把abc输入p指向的内存,再把
//def输入q指向的内存
//由于q,p所指向的内存是同一内存
//所以,值def覆盖了值abc
因而,内存中只有值def
在输出时,先输出p,再输出q,所以输出def后再输出def
故:
如果:
输入:abc def(回车)
输出:defdef
main(){ char *p,*q; p=(char*)malloc(sizeof(char)*20);q=p; sc
详解下面的程序题.#include void main(){ char *p,*q;p=(char *)malloc(s
int m(char * p) { p=malloc(10); return 1;} int main() { char
main() {char *s1,*s2,m; s1=s2=(char*)malloc(sizeof(char)); *
char point(char*p) {p+=3;return *P} main() {char b[4]={'a','
void fun (char *a,char *h,char *p) { int j=0; char *q=a; whi
#include #include main() { char p[20]={'a','b','c','d'},q[]=
void f(char **p) { char *t; t=(p+=sizeof(int))[-1]; printf("
main() { char a[]={'a','b','c','d'}; char *p=(char *)(&a+1);
char p[]={'a','b','c'},q[]="abc";
#include "stdio.h" void point(char *p) {p+=3;} main() { char
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcat(p