社区
C语言
帖子详情
关于 while(*p2++ = *p1++)
cwbcwb505
2010-11-09 09:59:12
Main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%sn”,p2);
}
请问上面代码会输出什么?为什么?
...全文
245
8
打赏
收藏
关于 while(*p2++ = *p1++)
Main() { char *p1=“name”; char *p2; p2=(char*)malloc(20); memset (p2, 0, 20); while(*p2++ = *p1++); printf(“%sn”,p2); } 请问上面代码会输出什么?为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
永远的霸者
2010-11-09
打赏
举报
回复
此时指针p2指向string"name" 后面的“\0” 输出的是“\0”。
awsqsh
2010-11-09
打赏
举报
回复
每天一顶。。。建议重写代码,,感觉好乱
無_1024
2010-11-09
打赏
举报
回复
当p2为'\n'时终止
hjs1122
2010-11-09
打赏
举报
回复
while(*p2++ = *p1++);
printf(“%s\n”,p2);
你是想完成:将p1指向的内存复制给p2指向的内存
但是你的p2指针已经改变了,输出它你又有什么意思啦!
可以这么改:
char *p3 = p2;
while(*p3++ = *p1++);
printf("%s\n", p2);
luciferisnotsatan
2010-11-09
打赏
举报
回复
[Quote=引用 2 楼 lthyxy 的回复:]
printf(“%sn”,p2); 遇‘\0’就停止输出。
[/Quote]
+1
太乙
2010-11-09
打赏
举报
回复
while(*p2++ = *p1++); 将p1指向的内存复制给p2指向的内存。。。
相当于:
do
{
*p2 = *p1;
p1++;
p2++;
}while (*p2 != '\0')
liutengfeigo
2010-11-09
打赏
举报
回复
printf(“%sn”,p2); 遇‘\0’就停止输出。
hhh_hao
2010-11-09
打赏
举报
回复
哪有人会写这样的代码
青少儿NOIP信息学奥赛通关必备-C
++
语法-循环-while循环
本课程为零基础C
++
语法专题课,是青少儿参加信息学奥赛NOIP通关必备-语法专题课; 2、本课程每节课均配有练习题以及真题,以锻炼孩子的解题能力;... 6、本课程介绍的是程序的循环结构-while循环的知识
指针*
p2
++
=*
p1
++
_chris
char *
p1
="name"; char *
p2
;
p2
=(char *)malloc(20); memset(
p2
,0,20); while (*
p2
++
=*
p1
++
) { } printf("%s\n",
p2
);//输出结果为空 难道是没有复制成功么?!!! 其实不然,已经
p1
指向的字符串赋给了
p2
,但是赋完值后,
p2
已经的指向也跟着到了字符串的尾部,所以输出无内容
简单问题1——while(*
p2
++
=*
p1
++
);
原题: Main() { char *
p1
=“name”; char *
p2
;
p2
=(char*)malloc(20); memset (
p2
, 0, 20); while(*
p2
++
= *
p1
++
); printf(“%sn”,
p2
); }
c语言常见面试题目及答案,C语言常见面试试题(试题一套)
该楼层疑似违规已被系统折叠隐藏此楼查看此楼1、判断以下程序输出结果main(){char *
p1
=“name”;char *
p2
;
p2
=(char*)malloc(20);memset (
p2
, 0, 20);while(*
p2
++
= *
p1
++
);printf(“%s\n”,
p2
);}答案:Answer:empty string.2、main(){int x=20,y=35;x=y
++
+ ...
【c语言】利用指针实现strcmpy函数
#include <stdio.h> //利用指针实现strcmpy函数 int strcmp(char *
p1
,char *
p2
) //两个字符串比较函数 { int i=0; while(*(
p1
+i)==*(
p2
+i)){ i
++
; if (*(
p1
+i)=='\0'){ return(0); //相等时返回结果 0 ...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章