while循环里的东西没看明白,还有后面的&&,为什么是&&*dst而不是&&*src
1条回答 默认 最新
关注 - while循环里面的第一个表达式
!(ret=*(unsigned char*)src-*(unsigned char*)dst)
是在判断当前指针指向的这两个字符是否相同 - 如果相同,ret的值就是0,!是逻辑反操作符,!0就是真,判断下一个*dst
- strcmp是比较函数,只要dst和src之间有一个为\0,程序就停止了
- 假设src已经到头了,dst还没有,那就是0-任意一个数字,肯定是真,被!逻辑反后就是假,同样会退出循环。而当dst是\0,src不为\0的时候,ret的式子也肯定是真,!后同样会是假。
- 最后留下的*dst应该是判断dst和src同时为\0的情况(即这两个字符串相同),这时候就会返回没有修改过的ret=0了。也就是说,这里是*src还是*dst都可以
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用- while循环里面的第一个表达式
悬赏问题
- ¥15 vue3+element-plus页面崩溃
- ¥15 像这种代码要怎么跑起来?
- ¥15 怎么改成循环输入删除(语言-c语言)
- ¥15 安卓C读取/dev/fastpipe屏幕像素数据
- ¥15 pyqt5tools安装失败
- ¥15 mmdetection
- ¥15 nginx代理报502的错误
- ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
- ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
- ¥100 描述一下元器件的基本功能,pcba板的基本原理