杂记(二):while(*target++)(位于小甲鱼C语言视频第22课)
在鱼C论坛课后习题遇到了下面这段代码,简记下对其中while(*target++ != ‘\0’) 的理解
#include <stdio.h>#define MAX 1024int main()
{char str[MAX];char *target = str;int length = 0;printf("请输入一个字符串:");//实现读取键盘中的输入并赋入str中:fgets(str, MAX, stdin);while (*target++ != '\0'){length++;}printf("您总共输入了 %d 个字符!\n", length - 1);return 0;
}
程序想实现strlen函数的功能
故 while(*target++ != ‘\0’) 需要实现的功能为:
判断读入的是否为结束符’\0’,若不是,计数变量length++并读取下一个字符
- 你们可能对 target++ != ‘\0’ 这一行代码有疑问,这里我给大家解释下。首先在“运算符的优先级和结合性”(http://bbs.fishc.com/thread-67664-1-1.html)可以查到自增运算符(++)的优先级比取值运算符()要高,所以 *target++ 相当于 *(target++),先执行自增运算符,再取值。但由于这是一个后缀的自增运算符,所以自增的效果要在下一条语句才会生效,因此这里取出来的依然是 target 地址自增前指向的数组元素的值
但特殊的是:
后缀运算符特性:效果要在下一条语句才能生效
所以执行顺序可理解为:
while(*target != 0)
(target++)
循环体
(但是后缀运算符++的优先级是高于取值运算符 * 的!!)
杂记(二):while(*target++)(位于小甲鱼C语言视频第22课)相关推荐
- 跟着小甲鱼学python怎么样_跟着小甲鱼的python视频学习,小白能够接受吗?
查看: 3709|回复: 14 跟着小甲鱼的python视频学习,小白能够接受吗? 电梯直达 发表于 2018-4-29 16:57:27 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结交更多好 ...
- 小甲鱼数据结构教学视频(百度网盘)
这是小甲鱼数据结构教学视频(免费的哦) 直接搜索这个地址,然后保存百度网盘.下载后,就可以免费听课 http://pan.baidu.com/s/1eS9wsgi
- 小甲鱼python全部视频_小甲鱼全套教程之Python系列视频教程
Python 当前位置:主页 > 编程教程 > Python > 小甲鱼全套教程之Python系列视频教程 小甲鱼全套教程之Python系列视频教程 教程大小: 发布时间:201 ...
- 【小甲鱼C语言】课后笔记第一章第三节——常量和宏定义
目录 1.常见的常量 2.宏定义(符号常量) 3.标识符 4.字符串常量 5.课后习题(编程题) 1.常见的常量 整型常量:520, 1314, 123 实型常量:3.14, 5.12, 8.97 字 ...
- 小甲鱼python教程视频怎么样-小甲鱼零基础入门学习Python视频教程全套96集
资源介绍 教程名称: 小甲鱼零基础入门学习Python视频教程全套96集 课程简介: xa0 xa0 Python具有跨平台特点,Python可以在各种不同类型的计算机上运行,Windows.MAC. ...
- 小甲鱼c++学习视频之运算符重载
一.学习要点: 1.将分数定义为一个类,简化处理过程,面向对象的思维,不仅有数据,还可以对一个分数进行操作,比如约分操作,加减乘除操作. 2.类的私有成员只能通过成员函数进行访问. 3.分数的约分过程 ...
- 小甲鱼c语言课后作业_知识,就是力量——山财“学习小课堂”助你蓄力
编者按 少年,你渴望 知识的力量 吗? 我们有山财最全的学习秘籍, 只待你的耐心翻阅与潜心修炼! 接下来,就让我们一起查收学习干货~ 内容摘要 本系列推送分为 [悦览篇][干货篇][招募篇] 三大模块 ...
- 【小甲鱼C语言】课后笔记第一章第一节——打印(printf)
目录 1."打印"就是"输出"的意思 2.使用 GCC 编译程序:gcc 源代码 -o 可执行文件. 3.printf 是格式化输出函数 a.函数概要 b.函数 ...
- 【小甲鱼C语言】课后笔记第一章第九节——if语句
目录 1. 分支结构的作用就是将 C 语言的代码引入歧途 2.switch语句和分支嵌套 1. switch 语句 2. 使用 break 语句跳出 3. 分支结构的嵌套 2. 使用 break 语句 ...
最新文章
- 七牛云存储:通过SDK上传图片
- Gearman 异步处理委派任务
- spring和spring_Spring交易可见性
- 鸿蒙os芯片,没有了芯片,华为能靠鸿蒙OS系统打出差异化吗?
- Python 获取(字典)字符串时间区间并转换类型,判断该时间段属否在时间范围
- 将samba加入到windows域《转载》
- Android 系统(55)---Android App开发之ANR异常的原因分析及处理总结
- 聊聊lettuce的sentinel连接
- GDAL创建图像提示Driver xxx does not support XXX creation option的原因
- hadoop longwritable类
- 第 7 章 Neutron - 071 - 详解 ML2 Core Plugin(I)
- ArcGis 拓扑检查——狭长角锐角代码C#
- 一次完整的http请求过程是怎样的?
- python深度学习基于pytorch——arange、linspace 函数生成数组
- 下载安装Tomcat8.5.30
- 安卓各版本大变化(Android 6.0到10.0),兼容适配
- python re库 正则表达式
- 女生 男生 都该学会的潜规则
- 微信小程序开发案例2---省市区信息选择
- 优秀开源音乐项目---落雪音乐软件(免费听歌下载歌曲)
热门文章
- 1064 例题5-1-5 连续自然数求和
- mysql 中的1064_错误代码:mysql中的1064
- python第三章课后答案_XX医学院本科各专业《Python》第三章习题与答案-2020年实用精品...
- 短视频批量伪原创破解 苹果手机md5视频修改工具下载
- 26 欧拉积分疑惑解析
- oracle如何根据ID恢复部分数据,三种方法找回Oracle数据库误删除的数据
- JDBC插入数据后返回新数据id
- 栅格矩阵转换成邻接矩阵G2D函数
- 矩阵的三角分解法之LU分解之Doolittle分解
- Mob之短信验证集成SMSSDK