当前位置: 首页 > news >正文

赋值语句还能当判断条件?涨芝士了!

赋值和条件看似是C语言中毫不相关的两个概念,虽然实际过程中我猜测不会有太多这种不太符合常理的情况出现,但是现在在学习的过程中,为了出题而出题总是会整出一些花活出来.....这很难不让人联想起高中时一些大佬为了彰显自己的数学天赋而自己手动捏造出一些奇了吧怪的导数题来恶心人,俗称钓鱼卷......不过不管怎样,特算是补起了自己的一个知识盲区,一起来看看吧~

void sstrcat(char *s, char *t)

{

    int n;

    n=strlen(s);

    while(*(s+n)=*t){

        s++; t++;

        }

}

上面这个函数是一个要求自己手搓一个strcat函数,即字符串连接函数,我们来看while循环里面的这个语句

while(*(s+n)=*t)

这显然是一个赋值语句,可是按理来说应该是一个条件判断语句的,然而程序也是正确的,只能说明这个赋值语句是可以当作有真值的语句的。

文心一言出场~~

 也就是说,赋值语句作为一个判断语句的时候,返回值是被赋予的那个值。

回到本例中,那么该*(s+n)=*t语句就应该返回的是右边的*t这个字符的值,当它到达字符串结尾的时候为零,此时停止。

感觉这个方法其实很巧妙地进行了终止判断,不需要再写一个额外的语句来判断后面的字符串是否已经到达末尾。但是不建议在自己写的时候这么写,确实容易看不懂,其实也就是大佬们秀一把自己的语法功底啦~

 

http://www.lryc.cn/news/328846.html

相关文章:

  • 数据结构 - 算法效率|时间复杂度|空间复杂度
  • 接口自动化之 + Jenkins + Allure报告生成 + 企微消息通知推送
  • 『Apisix安全篇』探索Apache APISIX身份认证插件:从基础到实战
  • 【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了
  • 『大模型笔记』常见的分布式并行策略(分布式训练)
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化
  • 3D数据格式导出工具HOOPS Publish如何生成高质量3D PDF?
  • 【springboot】闲话 springboot 的几种异步机制 及 长轮询的概念和简单实现
  • Mysql---安全值守常用语句
  • containerd快速安装指南
  • Javascript - 正则表达式相关的一些基础的范例
  • JUC:线程活跃性(死锁、活锁、饥饿)
  • RGB到灰度图像的转换原理及例程
  • PCA+DBO+DBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper!
  • 创建数据库与表单以及管理表单和数据
  • Milvus+ATTU环境搭建
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果
  • Chrome浏览器 安装Vue插件vue-devtools
  • 相册清理大师-手机重复照片整理、垃圾清理软件
  • 【GitLab】Ubuntu 22.04 快速安装 GitLab
  • Linux重点思考(下)--shell脚本使用以及内核开发
  • 2024世界技能大赛某省选拔赛“网络安全项目”B模块--应急响应解析
  • 苹果与百度合作,将在iPhone 16中使用生成式AI
  • java中的单例模式
  • pytorch笔记篇:pandas之数据预处理(更新中)
  • 【安全用电管理系统的应用如何保证用电安全】Acrel-6000安科瑞智慧安全用电解决方案
  • 数据分析之POWER Piovt透视表分析
  • 机器人寻路算法双向A*(Bidirectional A*)算法的实现C++、Python、Matlab语言
  • 智慧公厕产品的特点、应用场景
  • vue 插槽(二)