该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

2.3 整型数据

整形常量

在C语言程序中,整型常量可以用十进制、八进制和十六进制等形式表示。十进制基本常量用一串连续的数字表示,例如32767、-32768、0等。

八进制数也是用一串连续的数字表示,但其开头必须是数字”0”。例如010、011、016等都是合法的八进制数,与之对应的十进制数为8、9、14。因此,在C程序中不能在一个十进制数前随意添加数字”0”。例如,不能把十进制数1 l写成011。注意:八进制数必须用合法的八进制数字表示。例如,不能写成018,因为数字8不是八进制数字。

十六进制数用数字0和字母X(或大写字母X)开头。例如Ox10、OXde、Oxf等都是合法的十六进制数,与之对应的十进制数分别为16、222、15。注意:十六进制数必须用合法的十六进制数字表示。十六进制数中的字母a、b、e、d、e、f既可以用小写也可以用大写。

在C程序中,只有十进制数可以是负数,而八进制和十六进制数只能是整数。

整型常量又有短整型(short int)、基本整型(int)、长整型(10ng int)和无符号型(unsigned)等不同类型。

整型变量

整型变量可以分为基本型、短整型、长整型和无符号型四种。本节只介绍基本型的整型变量。

整数在内存中的存储形式

计算机中,内存储器的最小存储单位称为”位(bit)”。由于只能存放0或1,因此称为二进制位。大多数计算机把8个二进制位组成一个”字节(byte)”,并给每个字节分配一个地址。若干字节组成一个”字(word)”,用一个”字”来存放一条机器指令或一个数据。一个字含多少个字节随机器的不同而不同。如果一台计算机以两个字节(16个二进制位)来存放一条机器指令,则称此计算机的字长为16位;如果以四个字节(32个二进制位)来存放一条机器指令,则称此计算机的字长为32位。

通常把一个字节中的最右边一位称为最低位,最左边一位称为最高位。对于一个有符号整数,其中最高位(最左边的一位)用来存放整数的符号,称为符号位。若是正整数,最高位放置0;若是负整数,最高位放置1。

2.4 实型数据

实型常量

实型常量又称实数或浮点数。在C语言中可以用两和中形式表示一个实型常量。

一、小数形式

小数形式是由数字和小数点组成的一种实数表示形式,例如1.123、.123、123.、0.0等都是合法的实型常量。注意:小数形式表示的实型常量必须要有小数点。

二、指数形式

这种形式类似数学中的指数形式。在数学中,一个数可以用幂的形式来表示,如2.3026可以表示为0.23026×101、2.3026×100、23.026×10-1等形式。在C语言中,则以”e”或”E”后跟一个整数来表示以10为底的幂数。2.3026可以表示为0.23026E1、2.3026e0、23.026e-1。C语言的语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。如e3、.5e3.6、.e3、e等都是非法的指数形式。注意:在字母e或E的前后以及数字之间不得插入空格。

实型变量

C语言中实型变量分为单精度型和双精度型两种,分别用类型名float和double进行定义。

2.5 算术表达式

基本的算术运算符

在C语言中,基本的算术运算符是:+、-、*、/、%,分别为加、减、乘、除、求余运算符。这些运算符需要两个运算对象,称为双目运算符。除求余运算符%外,运算对象可以是整型,也可以是实型。如l+2、1.2*3.2。

求余运算符的运算对象只能是整型。在%运算符左侧的运算数为被除数,右侧的运算数为除数,运算结果是两数相除后所得的余数。当运算数为负数时,所得结果的符号随机器的不同而不同。

“+”和”-”也可用作单目运算符,运算符必须出现在运算数的左边。运算数可为整型,也可为实型。如:-54、+3.9。

运算符的优先级、结合性和算术表达式

在C语言中,常量、变量、函数调用以及按C语言语法规则用运算符把运算数连起来的式子都是合法的表达式。凡是表达式都有一个值,即运算结果。

一、算术运算符的优先级

二、算术运算符和圆括号的结合性

以上所列的运算符中,只有单目运算符“+”和“-”的结合性是从右到左的,其余运算符的结合性都是从左到右。

三、算术表达式

用算术运算符和一对圆括号将运算数(或称操作数)连接起来的、符合C语言语法的表达式称为算术表达式。

强制类型转换表达式

强制类型转换表达式的形式如下:

(类型名)(表达式)

上述形式中,(类型名)称为强制类型转换运算符,利用强制类型转换运算符可以将一个表达式的值转换成指定的类型,这种转换是根据人为要求进行的。例如:表达式(int)3.234把3.234转换成整数3;表达式(double)(10%3)把10%3所得结果l转换成双精度数。

2.6 赋值表达式

赋值运算符和赋值表达式

在c语言中,赋值号”=“是一个运算符,称为赋值运算符。由赋值运算符组成的表达式称为赋值表达式,其形式如下:

变量名=表达式

赋值号的左边必须是一个代表某一存储单元的变量名,对于初学者来说,只要记住赋值号左边必须是变量名即可。赋值号的右边必须是C语言中合法的表达式。赋值运算的功能是先求出右边表达式的值,然后把此值赋给赋值号左边的变量,确切地说,是把数据存入以该变量为标识的存储单元中去。

复合赋值表达式

在赋值运算符之前加上其他运算符可以构成复合赋值运算符。c语言规定可以使用10种复合赋值运算符,其中与算术运算有关的复合赋值运算符有:+=、-=、*=、/=、%=(注意:

两个符号之间不可以有空格)。复合赋值运算符的优先级与赋值运算符的优先级相同。表达式n+=1的运算规则等价于n=n+1,表达式n*=m+3的运算规则等价于n=n*(m+3),因为运算符“+”的优先级高于复合赋值运算“* =”。其他以此类推。

赋值运算中的类型转换

在赋值运算中,只有在赋值号右侧表达式的类型与左侧变量类型完全一致时,赋值操作才能进行。如果赋值运算符两侧的数据类型不一致,在赋值前,系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换,也可以用强制类型转换的方式人为地进行转换后将值赋给赋值号左边的变量。这种转换仅限于数值数据之问,通常称为”赋值兼容”。对于另外一些数据,例如后面将要讨论的地址值就不能赋给一般的变量,称为”赋值不兼容”。

在这里,特别需要指出的是在进行混合运算时整型数据类型之间的转换问题。

2.7 自加、自减运算符和逗号运算符

自加运算符“++”和自减运算符“--”

(1)自加运算符”++”和自减运算符”- -”的运算结果是使运算对象的值增1或减l。如

i++,相当于i=i+1;i- -,相当于i=i-1。因此,自加或自减运算本身也是一种赋值运算。

(2)运算符”++”和”- -”是单目运算符,运算对象可以是整型变量也可以是实型变量,但不能是常量或表达式,因为不能给常量或表达式赋值。因此,如++3、(i+j)- -等都是不合法的。

(3)用自加或自减运算符构成表达式时,既可以前缀形式出现,也可以后缀形式出现。

(4)运算符”++”和”- -”的结合方向是”自右至左”。

(5)不要在一个表达式中对同一个变量进行多次诸如i++或++i等运算

逗号运算符和逗号表达式

“,”是c语言提供的一种特殊运算符,用逗号将表达式连接起来的式子称为逗号表达式。逗号表达式的一般形式为:

表达式1,表达式2,……,表达式n

说明:

(1)逗号运算符的结合性为从左到右,因此逗号表达式将从左到右进行运算。即,先计算表达式1,然后计算表达式2,依次进行,最后计算表达式n。最后一个表达式的什就是此逗号表达式的值。例如:(i=3,i++,++i,i+5)这个逗号表达式的值是10,i 的值为5。

(2)在所有运算符中,逗号运算符的优先级最低。

c语言中求余右值不能为小数,C语言知识点(2)相关推荐

  1. 宇文成 C语言中求三个值中的最大值

    C语言中求三个值中的最大值 #include <stdio.h> //定于有参构造函数 int max(int x,int y); //定义主函数main int main(){ //定义 ...

  2. C语言中求余运算符的注意事项

    求余运算符为"%",在C语言中为双目运算符,且要求两个运算数都为整型的.求出的余数与被除数的符号相同.如: 转载于:https://www.cnblogs.com/nylglqx/ ...

  3. c语言中求字节的运算符是,初学者单片机C语言运算符

    单片机C语言运算符 单片机及C语言学习 auto        存储种类说明        用以说明局部变量,缺省值为此 break        程序语句        退出最内层循环 case  ...

  4. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  5. 决定c++语言中函数的返回值类型的是,全国2009年10月高等教育自学考试C++程序设计试题及部分参考答案...

    全国2009年10月高等教育自学考试 C++程序设计试题 课程代码:04737 一.单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码 ...

  6. 7-223 sdut-C语言实验-求阶乘(循环结构)7-224 sdut-C语言实验-排序问题7-225 sdut-C语言实验- 冒泡排序中数据交换的次数

    目录 7-223 sdut-C语言实验-求阶乘(循环结构) 7-224 sdut-C语言实验-排序问题 7-225 sdut-C语言实验- 冒泡排序中数据交换的次数 7-223 sdut-C语言实验- ...

  7. C语言中求字符串长度的函数my_strlen()的几种实现方法

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) {asse ...

  8. java求学生的总分和平均分_c语言中求课程总分、平均分。学生总分及平均分

    c语言中求课程总分.平均分.学生总分及平均分 1. #include stdio.h int main(void) { int i, j; int a[6][2]; puts("please ...

  9. c语言浮点变量是什么意思,C语言中说的浮点型是什么意思呢 C语言的浮点数是什么...

    导航:网站首页 > C语言中说的浮点型是什么意思呢 C语言的浮点数是什么 C语言中说的浮点型是什么意思呢 C语言的浮点数是什么 相关问题: 匿名网友: 就是这个数就像有一个飘动的小数点,也就是我 ...

最新文章

  1. 苹果公司揭秘首批列入 Swift 源代码兼容性开源项目清单
  2. vscode remote ssh 重新连接_使用 VSCode 愉快地进行 R 远程开发
  3. 实体框架 Code First 迁移命令
  4. 设计模式—抽象工厂模式(思维导图)
  5. 简单算法系列之完数的计算
  6. 统计学常用知识-Pearson相关系数-显著检验-置信区间
  7. chrome插件离线安装包(.crx)下载
  8. Mysql数据库内对查询结果去重复指令【重点】
  9. YOLO目标检测算法轻量化改进的过程记录
  10. 系统集成十大项目管理(1)
  11. Ps制作文字组成文字云人物海报
  12. hy-bridge:一款简洁安全可靠的Hybrid框架
  13. Spring使用与两大核心(Bean,AOP)
  14. 网站弹窗广告进行宣传推广效果怎么样
  15. 泰德激光打标软件 包含 #include Main.h 时 原本正确的单元却报错
  16. 149php货币,149.99 USD to PHP
  17. 基于qt中QCalendarWidget的双日历时间范围选择控件(自定义)
  18. 报错UnicodeEncodeError: ‘ascii‘ codec can‘t encode character ‘\u7b2c‘ in position 64: ordinal not in r
  19. JAVA日期时间加减
  20. DC-DC转换器芯片SY8113BADC

热门文章

  1. python 矩阵运算出现0值_python 常见矩阵运算
  2. 入伏从哪天算起比较准确性_2020入伏从哪天算起 2020入伏时间计算表一览
  3. 蔚来首款搭载激光雷达SUV车型ES7亮相;福伊特集团收购ARGO-HYTOS | 美通企业日报...
  4. 【搬迁通知】账号原有内容搬迁至“三明治开发社区”,欢迎大家关注!
  5. 99%的网络安全人都没想到!办公网的第一道防线应该是它
  6. js之String()函数
  7. Hexo+next主题美化静态博客
  8. PyTorch - FashionMNIST + LeNet / AlexNet / VGG / GooLeNet / NiN / ResNet / DenseNet
  9. 谈谈你过去做过的成功案例
  10. gRPC 中监听 Sream 和 Transport 的事件