C语言问题?

这个循环什么时候终止,一直循环下去两个指针不就越界了吗... 这个循环什么时候终止,一直循环下去两个指针不就越界了吗 展开
 我来答
上海长英
2021-03-16 · 上海长英,自动化电气设计,软件编程。
上海长英
采纳数:1072 获赞数:22868

向TA提问 私信TA
展开全部
  1. 很高兴和你一起讨论和学习C/C++

  2. while(表达式)

    当表达式的结果为0是就停止循环,只要表达式的值“不为0” 就一直循环。

    while(-1)或while(1) 都是死循环

  3. 字符串常量或变量 结尾都有自动添加一个空字符'\0',其ASCII码值 就0

    char p1[]="abcde'; //这个数据组有5个可见字符,末尾还有个不可见的空字符'\0'(即0)

    char p2[]="1234567"//同样结尾也有个不可见的字符'\0'(即0)

    while(*p2++=*p1++);  其中++运算符优先级大于*(取值运算),

    所以等效于while(*(p2++)=*(p1++)) ,间接寻址,当指针p1 指向‘\0'时 while 循环语句就停止了。

  4. 不详之处,欢迎继续讨论。

arongustc
科技发烧友

2021-03-16 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5698万
展开全部
赋值运算符返回=右侧表达式的值,当*p1的值为0时,循环终止
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
brain39
2021-03-16 · TA获得超过6094个赞
知道大有可为答主
回答量:6365
采纳率:81%
帮助的人:13.2万
展开全部
注意while括号里是=,不是==。循环中一值在复制p1[]到p2[]。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式