1个回答

C语言编程大神能不能帮我看一下这里为什么只有一个等号?

知乎用户s8crJU
3个点赞 👍

那你仔细回想一下为什么有时候使用if判断两个数是否相等的时候,错误将==写成=,仍然编译通过?这就是C语言的一个坑,C语言的赋值语句也是有返回值的,所以if里面使用=,编译器不知道你的目的是什么,只会给你警告。

回到问题本身,这样写是偷懒的写法,但是对新手不友好,while后面的括号里的语句会先被执行,然后再判断是否大于0,因为赋值语句也有返回值,这个返回值就是你赋的值,而字符串的结束符刚好又是\0,所以当执行到字符串末尾的时候,while判断等于0结束循环

发布于 2022-11-26 14:57・IP 属地浙江
Milo
自由评论 (0)
分享
Copyright © 2022 GreatFire.org