表达式


表达式是由运算符和操作数组合构造成。最简单的表达式是一个单独的操作数,以此作为基础,结合语言自身支持的操作符,就可以建立复杂的表达式。下面是一些表达式:

从这里可以看到,操作数可以是数据常量(4,-5)、变量(a,b)或者是二者的组合(b+7)。每一个表达式都有一个值,求值的过程依赖于运算符优先顺序。加减乘除这四种运算遵循算术运算的优先级法则。当表达式中混合有不同类型的操作数时,会执行自动类型转换操作。如果不能转换到同一类型求值,程序便会报错。

语句


C语言中,语句是构造程序的基本成分,每条语句以一个分号标识其结束。如

width = 20

这只是一个表达式,而

width = 20;

是一条语句,在任何表达式后面加上分号,表达式将成为语句。因此,最简单的语句就是一个单独的分号,但是它什么不做。

整型除法(/)与求余(%)运算


两个int类型的数据做除法时,结果是其商。当出现不能被整除的情况时,并不会得到小数部分。因此1/2会得到0而非0.5,3/2会得到1。当需要保留小数部分时,就需要两个float类型的数值进行运算。

求余(%)运算作用于两个整型(int)数据间,值是两个数相除的余数,如2%3=3,5%3=2,6%3=0。 除号的正负取舍和一般的算数一样,符号相同为正,相异为负;求余符号的正负取舍和被除数符号相同。

程序中演示求余(%)运算的两行代码,你会发现在printf()的格式化参数中,使用了连续两个%号,最后程序仅输出了一个%号。这是因为%号自身是格式控制符的一部分,因此需要连续输入两个%号以表示转义输出自身。

将表达式的结果赋值给变量


很多时候,我们不会像上面的程序一样,简单的将表达式结果输出到屏幕,而是需要将表达的运算结果赋给一个变量或传递给一个函数,以使用这个变量进行更多的处理。前面我们学习了将一个数值量赋值给一个变量以达到改变变量的目的,如 width = 8;下面我们扩展一下赋值操作的右端实现——使用表达式进行初始化。

后续补充


关于求余运算,需要记住的是:求余符号的正负取舍和被除数符号相同。不过,在实际的开发中,应用两个正整数做求余运算是最多的需求。

除法方面,在看到除法运算(/)时,始终要提醒自己小学时背诵的一句话:0不能为除数!在程序当中也是如此。你可以基于本节掌握的内容,写一个除0的程序来,看看最终会发生什么。完成之后,你也许会想:我不会这么笨的,但是由于间接性你可能会这么做。

屏幕输出语句_C语言快速入门——表达式与语句相关推荐

  1. define定义的函数如何引用_C语言快速入门——使用#define让程序更易维护

    与变量在运行时可以通过赋值操作更改这一特性不同,常量是一种在程序执行过程中,其值不发生改变的量.我们目前介绍了int.float.char三种数据类型,与它们相对应的常量分别为整型常量.浮点常量.字符 ...

  2. sql语言快速入门_C语言快速入门——名称可见性

    函数名的可见性 在介绍函数时,我们提到函数在被调用之前其名称必须是可见的.也就是说在编译时,被调用的函数签名是要存在的.而在连接时,函数体必须是定义完整的,只有这样才可以生成最终的可执行程序. 在编译 ...

  3. c语言指针查找数组一个数_C语言快速入门——指针与数组

    与数组有关的地址 我本来打算以一个程序开始,让我们直接理解相关概念.但转念一想,如果引导你思考问题而得出结论,或许会有另一种效果,因此,我们的讨论以下面的定义为基础. int a = 9;int b[ ...

  4. c语言使用未初始化的内存怎么解决_C语言快速入门——数组与调试进阶

    由ASCII码表的输出程序,我们可以认识到使用循环语句处理一组连续的数据有着巨大的优势.在更普遍的情况下,数据由一组离散的数值组成,如一组学生的考试成绩.对于这些数据的处理,有效的方式是使用循环.但前 ...

  5. Common Lisp语言快速入门

    zhezhelin Common Lisp语言快速入门 Lisp是软件领域的分裂力量.一方面,Lisp爱好者誓言Lisp比软件领域内的其它语言都更加快捷.整洁和强大:而反对者则辩称,不可靠的执行和库支 ...

  6. Swift教程Swift语言快速入门(内部资料)

    Swift语言快速入门(内部资料) 试读下载地址:http://pan.baidu.com/s/1eQCGRHw 前言Swift教程Swift语言快速入门(内部资料)Swift教程Swift语言快速入 ...

  7. Swift语言快速入门

    Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著   ISBN 978-7-121-24328-8 201 ...

  8. Python语言快速入门(上)

    前言 首先需要说明的是,本期图文仅涉及Python语言的基础入门内容,由于我也不是计算机本专业的学生,这些内容完全是出于强烈的学业兴趣而撰写的,其中难免会出现一些表述不恰当的地方,如果存在问题,欢迎我 ...

  9. Python语言快速入门上

    目录 1.前言 2.变量和常量 1)Python对象模型 2)Python变量 二.运算符和表达式 [运算符和表达式] [位运算符] [逻辑运算符] [成员运算符] [身份运算符] [常用内置函数] ...

最新文章

  1. 【译】Everything You Need to Know About Decentralized AI
  2. django-oscar接入paypal的时候提示Error 10001 - Internal Error
  3. 命令行里对SAP Spartacus执行命令ng test core
  4. 每天学习点--------第五天(2017-10-9) 摘要: 常用的集合
  5. 关于某些系统统计查询等业务进行大数据量的测试
  6. [UFLDL] Exercise 1C:Softmax Regression
  7. java本地储存set_没有数据库的情况下,JAVA如何在本地保存信息
  8. 一个简单的音乐网站项目
  9. C语言斐波那契数列解析
  10. 硕士转计算机科学,普利茅斯大学计算机科学(转专业)理学硕士研究生申请要求及申请材料要求清单...
  11. 验证码漏洞汇总(一)
  12. android怎么删除插件,Android手机如何添加删除桌面图标和插件
  13. java 读取文本_Java如何读取txt文件的内容?
  14. Google新闻vs门户新闻:决裂还是共存
  15. Python爬虫的实际运用之:破解滑动验证码
  16. wind资讯量化接口获取方式
  17. 如何通过Excel数据批量生成DM码
  18. 视频教程-思科CCNP专题系列13:IP多播协议-思科认证
  19. MySQL面试常见题目(六)
  20. 【教学】MT4实现任意分钟变周期 灵活K线

热门文章

  1. 前端学习(1741):前端调试值之元素状态改变的监听方法
  2. “睡服”面试官系列第十一篇之module加载实现(建议收藏学习)
  3. 前端学习(909):navigater对象
  4. 第二十期:核心交换机的链路聚合、冗余、堆叠、热备份
  5. java学习(140):1.7后新特性
  6. 计算机操作系统(11):负载均衡
  7. 我对CSS vertical-align的一些理解与认识(一)
  8. 数据结构算法入门--一文了解什么是复杂度
  9. OpenCV学习笔记(1)——显示图片
  10. python代码转换为pytorch_pytorch使用 to 进行类型转换方式