【C语言】第二章 类型、运算符和表达式
为什么80%的码农都做不了架构师?>>>
变量和常量是程序处理的两种基本数据对象。
声明语句说明变量的名字及类型,也可以指定变量的初值。
运算符指定要进行的操作。
表达式则把变量与常量组合起来生成新的值。
对象的类型决定该对象可取值的集合以及可以对该对象执行的操作。
2.1变量名
命名规则:
(1)由字母和数字组成的序列,第一个字符必须是字母,下划线被看作是字母,通常用于命名较长的变量名,以提高可读性。
(2)由于库例程的名字通常以下划线开头,因此变量名不要以下划线开头。
(3)大写字母与小写字母是有区别的。
(4)C语言中,变量名使用小写字母,符号常量名全部使用大写字母。
(5)局部变量一般使用较短的变量名(尤其是循环控制变量),外部变量使用较长的名字。
2.2 数据类型及长度
(1)
C语言提供了下列几种基本数据类型:
char 字符型,占用一个字节,可以存放本地字符集中的一个字符
int 整型,通常反映了所用机器中整数的最自然长度
float 单精度浮点型
double 双精度浮点型
此外,这些基本数据类型前可以加上short 与long两个限定符。
eg:
short int sh
long int counter
(这种,int可以省略)
(2)
short与long的引入可以为我们提供满足实际需要的不同长度的整型数。
int通常代表特定机器中整数的自然长度。
short类型通常为16位,
long类型通常为32位。
int 类型可以为16位或者32位。
各编译器可以根据硬件特性自主选择合适的类型长度,但是要遵循:
short与int类型至少为16位,
long类型至少为32为。
并且short类型不得长于int类型,而int类型不得长于long类型。
signed与unsigned 用于限定char类型或任何整型。unsigned无符号,总是正值或0,并遵守算术模2n(n次方)定律,其中n是该类型占用的位数。如果char对象占用8位,那么unsiged char类型变量取值范围为0-255,而siged char类型取值范围则为-128-127。
2.3 常量
(1)
类似于1234 ,属于int类型的常量;
类似于123456789L,以字母L或l结尾,属于long类型的常量;
如果一个整数太大以至于无法用int类型表示时,也被当作long类型处理;
无符号常量以字母u或U结尾;
后缀ul或UL表明是unsigned long类型;
(2)
浮点数常量中包含一个小数点或一个指数,也可以两者都有。
没有后缀的浮点数常量为double类型;
后缀有f或F表示float类型;
后缀l或L则表示long double类型;
(3)
整型数除了用十进制表示外,还可以用八进制或十六进制。
带前缀0的整型常量表示为八进制;
带前缀0x或0X的整型常量表示为十六进制;
八进制或者十六进制也可以使用L表示long类型,使用U表示unsigned类型,eg:0XFUL
(4)
一个字符常量是一个整数,如‘x’。
字符在机器字符集中的数值就是字符常量的值。
字符常量一般用来与其他字符进行比较,但也可以像其他整数一样参与数值运算。
某些字符可以通过转义字符序列表示为字符和字符串常量。
转义字符序列看起来像两个字符,但只表示一个字符。
另外,我们可以用‘\ooo’ 表示任意的字节大小的为模式。其中000代表1-3个八进制数字。
这种位模式还可以用‘\xhh’表示。
其中,hh是一个或多个十六进制数字。
ANSI C语言中的全部转义字符序列如下:
\a:响铃符
\b:回退符
\f:换页符
\n:换行符
\r:回车符
\t:横向制表符
\v:纵向制表符
\\:反斜杠
\?:问号
\':单引号
\":双引号
\ooo:八进制数
\xhh:十六进制数
另,字符常量'\0' 表示值为0的字符,也就是空字符串(null)。
我们通常用‘\0’的形式代替0,以强调某些表达式的字符属性,但其数字值为0。
(5)
常量表达式是仅仅只包含常量的表达式。
这种表达式在编译时求值,而不是在运行时求值。
eg:
#define MAXLINE 1000
char line[MAXLINE+1]
(6)
字符串常量也叫字符串字面值,是用双引号括起来的0个或多个字符组成的字符序列。
例如“I am a string” 或“”都是字符串。
双引号不是字符串的一部分,只是用于限定字符串。
字符常量中使用的转义字符序列同样也可以用在字符串中。
编译时,可以将多个字符串常量连接起来,例如,下列形式:
“hello,”“ world” 等价于 “hello, world”
字符串常量的连接为将较长的字符串分散在若干个源文件中提供了支持。
========
从技术角度看,字符串常量就是数组常量。字符串的内部表示使用一个空字符'\0'作为串的结尾,
因此,存储字符串的物理存储单元数比括在双引号中的字符数多一个。
这种表示也说明,C语言对字符串的长度没有限制,但程序必须扫描完整个字符串才能确定字符串的长度。
标准库函数strlen(s)可以返回字符串参数s的长度,但长度不包括末尾的'\0'。
========
我们应该搞清楚字符常量和仅包含一个字符的字符串的区别。
'x'与'X'是不同的。
前者是一个整数,其值是字母x在机器字符集中对应的数值;
后者是一个包含一个字符以及一个结束符'\0'的字符数组。
(7)
枚举常量是另外一种类型的常量。枚举是一个常量整型值的列表。
例如:
enum boolean { NO, YES };
在没有显式说明的情况下,enum类型中第一个枚举名的值是0,第二个是1,一次类推。
如果只指定了部分枚举名的值,那么未指定值的枚举名的值将依着最后一个指定值向后递增。
2.4 声明
所有变量必须先声明后使用,尽管某些变量可以通过上下文隐式声明。
一个声明指定一种变量类型,后面所带的变量表可以包含一个或多个该类型的变量。
eg:
int lower,upper,step;
char c, line[1000];
一个声明语句中的多个变量可以拆开在多个声明语句中声明。因此,也可以
int lower;
int upper;
int step;
char c;
char line[1000];
按照这种形式书写代码需要占用较多的空间,但便于向各声明语句中添加注释,也便于以后修改。
还可以在声明的同时对变量进行初始化。
在声明中,如果变量名的后面紧跟一个等号以及一个表达式,该表达式就充当对变量进行初始化的初始化表达式。
任何变量的声明都可以使用const限定符指定,该限定符指定的变量的值不能被修改。
对数组而言,const指定数组所有元素的值都不能被修改。
2.5 算术运算符
二元算术运算符包括:+ - * / %
整数除法会截断结果中的小数部分。
取模运算符%不能应用于float或double类型。
在有负操作数的情况下,整数除法截取的方向以及取模运算结果的符号取决于具体机器的实现。
【优先级】二元运算符+和-相同优先级 《 二元运算符 * / % 《 一元运算符+ - ;
算术运算符采用从左到右的结合规则。
2.6 关系运算符和逻辑运算符
(1)关系运算符包括:>、 >= 、< 、<=、
它们具有相同的优先级,优先级仅次于他们的是相等性运算符 == !=
关系运算符的优先级比算术运算符底。
(2)
逻辑运算符&& 与|| 。由&&与||连接的表达式按从左到右的顺序进行求值,并且,在知道结果为真或假后立即停止计算。
运算符&&的优先级比||的优先级高,但两者都比关系运算符和相等运算符的优先级底。
因此,表达式i<lim - 1 && (c = getchar()) != '\n' && c != EOF 就不需要加圆括号了。
但是,由于运算符!= 的优先级高于赋值运算符的优先级,因此,在表达式(c = getchar()) != '\n' 中,就需要使用圆括号。
【总结:赋值运算符《 逻辑运算符 《 相等于运算符 《 关系运算符 《 算术运算符】
2.7类型转换
啊啊
转载于:https://my.oschina.net/cqlcql/blog/535915
【C语言】第二章 类型、运算符和表达式相关推荐
- c语言程序设计课件第二章,c语言程序设计课件张元国 ISBN9787566300386 PPT第二章数据类型 运算符与表达式...
1.第2章 数据类型.运算符与表达式,语言的数据类型 常量与变量 运算符与表达式 不同类型数据间的转换,2.1语言的数据类型,数据是计算机程序处理的所有信息的总称,数值.字符.文本等都是数据,在各种程 ...
- c语言程序计算p q真值表,C语言程序设计第2章数据类型﹒运算符和表达式.ppt
C语言程序设计第2章数据类型﹒运算符和表达式 教学目标 掌握C语言标识符的组成 理解C语言的基本数据类型 掌握变量定义的方法 掌握常用的运算符的使用 掌握混合运算的数据转换方法 2.1 C语言的数据类 ...
- 二进制补码求值用c语言,C语言程序设计第2章数据类型.运算符与表达式.ppt
C语言程序设计第2章数据类型.运算符与表达式 教学目标 掌握C语言标识符的组成 理解C语言的基本数据类型 掌握变量定义的方法 掌握常用的运算符的使用 掌握混合运算的数据转换方法 2.1 C语言的数据类 ...
- C语言程序设计基本运算符,C语言程序设计2第4章基本运算符和表达式.ppt
第4章 基本运算符和表达式 4.1 运算符的种类 4.2 算术运算符 4.3 自增自减运算符 4.4 表达式 4.5 逻辑运算 4.6 条件运算符和条件表达式 退出 4.1 运算符的种类 1. 算术运 ...
- c语言的程序灵魂是什么,C语言 第二章 程序的灵魂--算法
<C语言 第二章 程序的灵魂--算法>由会员分享,可在线阅读,更多相关<C语言 第二章 程序的灵魂--算法(39页珍藏版)>请在人人文库网上搜索. 1.第二章 程序的灵魂-算法 ...
- c语言定义y1代表英里数,河南理工大学C语言第二章课后习题答案.ppt
河南理工大学C语言第二章课后习题答案 第二章 基本数据类型.运算符与表达式 1.选择题 (1)下面四个选项中,均是合法整型常量的选项是 A. 160 , -0xffff, 011B. -0xcdf, ...
- 第5章 运算符和表达式
第5章 运算符和表达式 在计算机语言中,运算通过运算符来实现,运算符和运算数(或称操作数)组合在一起就形成了表达式.本章将详细介绍JavaScript运算符和表达式的基本知识和用法,并通过大量示例代码 ...
- c语言的运算符分类ppt,c语言的数据类型、运算符与表达式.ppt
c语言的数据类型.运算符与表达式.ppt 第3章数据类型.运算符与表达式,预备知识 数据类型 常量与变量 不同类型数据间的转换 运算符和表达式3.0 预备知识 计算机中数的表示及进制转换 数码.基与权 ...
- C语言--第二篇类型、运算符与表达式
1变量 局部变量一般使用较短的变量名,外部变量使用较长的名字.C语言提供一下几种基本数据类型. char 字符型,占用一个字节,可以存放本地字符集中的一个字符. int 整型, 通常反映了 ...
- c51查表法 c语言表达式,单片机c语言教程第六章--C51运算符和表达式
上两课说了常量和变量,先来补充一个用以重新定义数据类型的的语句吧.这个语句就是 typedef,这是个很好用的语句,但我却不常用它,通常我定义变量的数据类型时都是使 用标准的关键字,这样别人能很方便的 ...
最新文章
- linux文件目录详细介绍
- mysql为什么要编译安装_Mysql编译安装
- stylus之选择器(Selectors)
- 2013全球移动游戏产业白皮书
- 【转】xp修复win7启动项方法
- ztree带有选项框的树形菜单使用
- Win7 64 NVMe驱动安装
- CSDN-markdown编辑器语法——背景色
- 中国移动宽带密码重置方法
- 不低调的巨人,史玉柱
- unbuntu 中部署jenkins
- 焱融科技加入多家行业协会与产业联盟,加速产业互联生态跃迁
- Windows关于文件句柄数的限制
- Qt QVector “isDetached()“
- 斯柯达支持Android auto吗,斯柯达在SUV的布局输了吗?看柯米克和柯珞克的现状就知道...
- Re-ID: Person Re-identification by Local Maximal Occurrence Representation and Metric Learning 论文解析
- 2017互联网十大未解之谜,你能回答几个?
- html 中 col标签和 colgroup标签的区别
- 【汇编语言】 安装虚拟机运行dos系统 教程
- 设计寻迹避障小车的心得体会
热门文章
- 带电检测必要性_接地电阻检测分析的必要性
- 服务器在行例维护中,8月14日服务器例行维护公告
- wordpressQQ登陆php代码,仅在登录时使用wordpress PHP代码
- php+代码行数常量,php统计文件中的代码行数
- nt文件服务器是什么意思,nt服务器
- aes加密字符串c++_springboot2.2.X手册:防抓包?快速实现API接口数据加密
- macbook配置java环境变量_配置mac上Java环境变量
- idea 注释中 类 跳转_javaSE第一部分 数据类型、idea快捷键
- C语言一看就能上手的干货!你确定你不来看吗?
- docker mysql命令大全_Docker命令大全