




已阅读5页,还剩88页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章C语言程序设计的基础知识 第二章C语言程序设计的基础知识 本章教学目标 掌握C语言程序设计的基础知识熟悉C语言程序编写的基本框架 并能用C语言编写简单的程序 本章重点内容 C语言的字符集 标示符C语言的组成和基本结构C语言的数据类型C语言的常量和变量C语言的运算符和表达式 2 1C语言的字符集和标识符 2 2 1字符集字符是组成语言的最基本的元素 C语言字符集由字母 数字 空格 标点和特殊字符组成 在字符常量 字符串常量和注释中还可以使用汉字或其它可表示的图形符号 字母 小写字母a z共26个 大写字母A Z共26个 数字 0 9共10个数字 空白符空格符 制表符 Tab键 换行符等统称为空白符 空白符只在字符常量和字符串常量中起作用 在其它地方出现时 只起间隔作用 编译程序对它们忽略不计 标点和特殊字符比如 加号 减号 分号 逗号 等 2 1C语言的字符集和标识符 2 2 2标识符标识符是给程序中的某个对象所起的名字 这些对象可以是数据类型 变量 常量 函数 数组结构体和文件等 C语言规定 一个标识符由字母 数字和下划线组成 第一个字符必须是字母或下划线 通常以下划线开头的标识符是编译系统专用的 所以在编写C语言程序时 最好不要使用以下划线开头的标识符 2 1C语言的字符集和标识符 例2 1 合法标示符和非法标示符 以下能用作用户标识符的是 WORDas b3 224NElseint 2 Li ming mainIf22Alea 1avg3Xyw8day以下不能用作用户标识符的是 sizeof x i a o2 int printf 238M J YORK xya b8Tea 2 2C语言程序的基本结构和书写规则 2 2 1C语言程序的基本结构一个完整的C语言程序结构有以下两种表现形式 仅由一个main 函数 又称主函数 构成 由一个且只能有一个main 函数和若干个其他函数结合而成 其中 自定义函数由用户自己设计 2 2C语言程序的基本结构和书写规则 例2 2 仅由main 函数构成的 语言程序 includevoidmain printf ThisisaCprogram n 2 2C语言程序的基本结构和书写规则 例2 3 由main 函数和子函数max 构成的 语言程序 includeintmax intx inty return x y x y voidmain intnum1 num2 printf Inputthefirstintegernumber 输入提示语句 scanf d 输出函数max的返回值 2 2C语言程序的基本结构和书写规则 C语言程序结构有以下基本特点 函数 如 main函数和max函数 是 语言程序的基本单位 每一个函数完成相对独立的功能 C源程序是由一个主函数和若干个其它函数组成的 main 函数的作用 相当于其它高级语言中的主程序 其它函数的作用 相当于子程序 C程序中包含预处理命令 预处理命令通常放在程序最开始的位置 main是函数名 函数名后面的一对圆括号 是用来写函数的参数的 参数可以有 也可以没有 但圆括号不能省略 括起来的部分是函数体 包含了实现函数功能的语句 一个C语言程序总是从main 函数开始执行 在main 函数中结束 主函数执行完毕 程序执行结束 2 2C语言程序的基本结构和书写规则 C语言程序结构有以下基本特点 主函数main 既可以放在max 函数之前 也可以放在max 函数之后 习惯上 将主函数main 放在最前面 一个说明或一个语句占一行 允许使用注释 可以在程序的任何位置加注释 注释可以是中文 注释不属于C语言语句 不会影响C程序的执行结果 C语言的注释格式为 或者 2 2C语言程序的基本结构和书写规则 2 2 2源程序书写格式为了便于阅读和维护程序 更好的体现程序的层次结构 C语言的书写应遵循以下规则 C语言编译系统区分字母大小写 大小写字母被视为两个不同的字符 C程序必须用小写字母书写 所有语句都必须以分号 结束 函数的最后一条语句也不例外 程序行的书写格式自由 既允许1行内写几条语句 也允许1条语句分写在几行上 比如 例2 3 的主函数main 也可改写成如下所示的格式 voidmain intnum1 num2 printf Inputthefirstintegernumber scanf d 2 2C语言程序的基本结构和书写规则 2 2 2源程序书写格式为了便于阅读和维护程序 更好的体现程序的层次结构 C语言的书写应遵循以下规则 用 括起来的部分 通常表示了程序的某一层次结构 一般与该结构语句的第一个字母对齐 并单独占一行 低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写 以便看起来更加清晰 增加程序的可读性 书写C语言的注释时应注意 和 必须成对使用 且 和 以及 和 之间不能有空格 否则都出错 注释的位置 可以单占1行 也可以跟在语句的后面 如果1行写不下 可另起1行继续写 2 3数据类型 C语言的数据类型非常丰富 所谓数据类型是按被说明量的性质 表示形式 占据存储空间的多少 构造特点来划分的 在C语言中 数据类型可分为 基本数据类型 构造数据类型 指针类型 空类型四大类 本章主要介绍基本数据类型 2 3数据类型 C语言的数据类型 2 3数据类型 2 3 1整型数据整型 INTEGER 数据是不包含小数部分的数值型数据 只用来表示整数 以二进制形式存储 不同的编译器 整型数据所占的字节数是不一样 ANSI标准定义int是占2个字节 TC是按ANSI标准的 int是占2个字节的 但是在VC里 int占4个字节 根据整数的最高位是否作为符号位 可将整数分为有符号 signed 整型和无符号 unsigned 整型 根据整数在计算机内存中所占用的空间大小 可分为短整型 shortint或short 基本整型 int 和长整型 longint或long 2 3数据类型 2 3 1整型数据 2 3数据类型 2 3 1整型数据 例2 4 整型数据的类型说明符 shortx 10 等价于signedshortx 10 同时等价于signedshortintx 10 intage 20 等价于signedintage 20 longz 10000L 加L后说明10000是一个长整型常量 而不是一个基本整型常量 2 3数据类型 2 3 2实数类型实型数据表示的是我们生活中带小数的数值 在C语言中 实型数据分为单精度和双精度两种 单精度用float表示 双精度用double表示 2 3数据类型 2 3 2实数类型在一般情况下 float型的数据在内存中占4个字节的存储空间 double型的数据在内存中占8个字节的存储空间 对于程序中的实型数据来说 float型的数据提供7位有效数字 double型的数据提供15 16位的有效数字 一个实型常量赋值给一个实型变量时 只根据实型变量表示的有效数字的位数 在实型常量中按从左向右的方向截取数据 2 3数据类型 例2 5 分析下列程序的运行结果 includevoidmain floata b sum a 4 b 5 sum a b printf f n sum 例2 6 float型数据和double型数据的不同 includevoidmain floatx 5 55555555 doubley 5 555555555555 printf x f n x printf y lf n y 2 3数据类型 2 3 3字符型数据字符型数据是不具计算能力的文字数据类型 它包括中文字符 英文字符 数字字符和其他ASC 字符 其长度 即字符个数 范围是0 254个字符 字符型数据类型的标示符为char 字符型数据在内存中占1个字节 2 4常量和变量 在C程序中不同类型的数据可以以常量形式出现 也可以变量形式出现 常量是指在程序执行期间值不能发生变化 具有固定值的量 变量则是在程序执行期间其值可以发生变化的量 当定义一个变量 编辑系统就会为其分配一块内存空间 用来存储可变的数据内容 当程序需要存取某个内存内容时 就可以通过变量名将数据由内存中取出或写入 2 4常量和变量 2 4 1常量1 整型常量C语言整型常量一般有十进制 八进制和十六进制三种表达形式 1 十进制整数的表示和数学上的表示相同 由数字0 9组成 如 0 10 365 12等 2 八进制整数的表示以0开头 由数字0 7组成 如 010 0365 012 011等 3 十六进制整数的表示以0 x或0X开头 由数字0 9 a z或A Z组成 如 0 x11 0Xffff 0 xa5 0XAC等 2 4常量和变量 C语言规定 凡是在整型数后加小写字母l或大写字母L作为长整数处理 凡是在整型数后加后缀 U 或者 u 表示该数为无符号整型 2 4常量和变量 2 实型常量在C语言中 实型常量只能用十进制形式表示 不能用八进制数和十六进制数表示 实型常量的两种表现形式 小数形式和指数形式 或者叫做小数点式和字母E 或e 式 1 小数点式 有且仅有一个小数点 小数点的左边和右边可以有一边没有数据 但不能同时没有数据合法的表示形式 3 14 0 1 10 0 0 0 10 08不合法的表示形式 3 3 56 1 345 2 4常量和变量 2 实型常量 2 字母E 或e 式 分为小数部分和指数部分分别存放 指数形式表示实数时必须有尾数部分和指数部分 有且仅有一个字母E 或e 尾数部分既可以用小数表示也可以用整数表示 指数部分只能是整数而不能是实数 2 4常量和变量 合法的表示形式 1e5 1 2E 4 3 0e 2 12e6 23e5不合法的表示形式 e3 12 e 2 5e可以使用后缀F或f表示单精度 float 类型 使用后缀L或l表示长双精度 longdouble 类型 默认状态下 实型常量被识别为双精度 double 类型 比如123 56是double类型 123 56f是float类型 123 56L是longdouble类型 2 4常量和变量 3 字符型常量用一对单引号 括起来的一个字符是字符型常量 值得注意的是 一对单引号只是字符与其它部分的分隔符 或者说是字符常量的定界符 不是字符常量的一部分 当输出一个字符常量时不输出此单引号 例如 a A 等是字符型常量 而 ABC 不是字符型常量 字符型常量的两种表现形式 1 由一对单引号括起来的单个字符 例如 A x 使用字符常量时要注意数字字符和数字的区别 例如 5 表示字符5 而不是数值5 字符5的ASCII码值是53 2 4常量和变量 3 字符型常量 2 转义字符 转义字符是一种特殊的字符常量 由一对单引号括起来 以反斜杠 开头 后面跟若干字符 反斜杠之后的字符被转换为另外的含义 不同于字符原有的意义 故称为 转义字符 转义字符通常用来表示C语言中的一些特殊的字符 例如控制字符 2 4常量和变量 2 4常量和变量 4 字符串常量用一对双引号 括起来的零个或多个字符序列称为字符串常量 字符串常量以双引号为定界符 但双引号并不属于字符串 例如 Hello 是字符串常量 但 AB 既不是字符常量也不是字符串常量 字符串常量在机器中存储时 系统会自动在字符串的末尾添加一个转义字符 0 作为字符串的结束标志 2 4常量和变量 如图2 7所示 字符串常量 Hello 在内存中实际占有6个字节大小的存储空间 而不是5个字节大小的存储空间 因为 0 需要占一个字节大小的存储空间 如图2 8所示 a 和 a 的区别 2 4常量和变量 5 符号常量在 语言中 可以用一个标识符来表示一个常量 称之为符号常量 符号常量在使用之前必须先定义 其一般形式为 define标识符常量其中 define也是一条预处理命令 称为宏定义命令 其功能是把该标识符定义为其后的常量值 符号常量一经定义 凡是在程序中出现该标识符的地方均以该常量值代替 符号常量的使用方法 define不是C语句 该行的末尾没有分号 它是一个 预编译命令 预处理命令都以 开头 符号常量的标识符习惯上用大写字母表示 变量标识符用小写字母表示 以示区别 不要把符号常量与变量混淆 符号常量只是一个符号 不占存储空间 它的值在其作用域内不能被改变 也不能再被赋值 符号常量只是简单地进行字符置换 不论置换的字符是否有含义都要进行置换 使用符号常量的好处是 含义清楚 能做到 一改全改 2 4常量和变量 例2 7 符号常量的使用 definePI3 1415926 defineR3 0 includevoidmain floatc s c 2 PI R s PI R R printf circumference f n c printf area f n s 分析 命令行 definePI3 1415926的作用是在预编译时将程序中凡出现PI的地方全部用3 1415926代替 符号常量的优点是使程序容易理解 可读性好且容易维护 2 4常量和变量 例2 7 符号常量的使用 definePI3 1415926 defineR3 0 includevoidmain floatc s c 2 PI R s PI R R printf circumference f n c printf area f n s 分析 命令行 definePI3 1415926的作用是在预编译时将程序中凡出现PI的地方全部用3 1415926代替 符号常量的优点是使程序容易理解 可读性好且容易维护 2 4常量和变量 2 4 2变量1 变量的概念其值可以改变的量称为变量 一个变量应该有一个名字 这个名字称为变量名 变量在内存中占据一定的存储空间 这个存储空间的首地址称为变量的地址 这个存储空间中存储的数据 称为该变量的值 变量名 变量值和变量地址之间的关系如图所示 2 4常量和变量 2 变量声明变量的声明又称变量的定义 在程序中 变量必须先声明后使用 否则程序编译时会出现错误信息 变量声明的主要作用就是为变量在内存中分配存储空间 至于为变量分配哪个地址的存储空间通常由编译器来分配 用户不需要关心 2 4常量和变量 2 变量声明C语言的变量声明主要是说明变量的名称及属于哪一种数据类型 变量声明的语法格式为 类型标识符变量名1 变量名2 变量名3 在引用变量之前先声明变量的类型 系统在编译时就会根据指定的类型分配给该变量一定的存储空间 并决定数据的存储方式和允许操作的方式 变量名由用户自己命名 但必须是C语言合法的标示符 即 必须由字母 数字和下划线组成 并且第一个字母不能为数字 2 4常量和变量 例2 8 变量的声明 includevoidmain charch1 ch2 ch3 定义了三个字符型的变量 名称为ch1 ch2 ch3floatx y 定义了两个单精度型变量 名称为x yintstudent 定义了一个整型变量 名称为studentstadent 19 程序运行后会出现 Undefinedsymbol statent infunctionmain 的错误提示 这是因为student被误写stadent 系统认为student没有被定义 2 4常量和变量 3 变量的初始化C语言允许在声明变量时给该变量赋一个初值 这种给变量设置初值的工作称为初始化 如果没有给变量进行初始化 并不意味着该变量中没有数值 而只表明该变量中尚未定义特定的值 可以用两种方式对变量进行初始化 1 在定义变量的同时给变量一个初始值 2 先定义变量 再使用赋值号 赋初值 2 4常量和变量 例2 9 定义变量时初始化 includevoidmain inta 5 b 3 c floatx1 6 5 x2 x3 5 9 charch a k A intx 1 y 1 z 1 2 4常量和变量 例2 10 使用赋值号赋初值 includevoidmain inta b c a 5 使用赋值语句赋初值b 3 注意赋值符号和等于号不同 2 4常量和变量 对变量进行初始化时 需要注意的是 定义变量时不能连续赋初值 例如 intx 1 y 1 z 1 不能写成intx y z 1 在同一程序块中 变量不能被重复定义 例如 includevoidmain intx y z floata b x 变量x被重复定义了两次 2 4常量和变量 4 变量的分类如果把变量与数据类型结合起来分类 变量可分为整型变量 浮点变量 字符变量 1 整型变量系统根据声明变量时所指定的数据类型为变量分配存储空间 使用整型变量时要注意不能超过变量的取值范围 2 4常量和变量 例2 11 整型数据的溢出 includevoidmain shortx 32767 y y x 1 printf x d y d n x y 2 4常量和变量 2 实型变量实型变量分为个单精度型和双精度型变量 两者之间的区别在于后者的有效位数比前者的多 精度更高 对于一个无穷的小数 由于存储空间有限 计算机无法表示出小数点后面所有的值 只能表示实际值的近似值 因此 使用实型变量时 可能会有误差 实型变量的有效位数越多 与实际值就会越接近 精度就越高 2 4常量和变量 例2 12 对比float型数据和double型数据 includevoidmain floatx 5555 55555 doubley 5555 555555555555 printf x f n x printf y lf n y 2 4常量和变量 例2 13 float型的数据有效位数 includevoidmain floatx x 7 1234567890 printf 20 18f n x 2 4常量和变量 例2 14 实型数据的舍入误差 includevoidmain floata 123456789 0 b b a 1 printf a f n a printf b f n b 2 4常量和变量 3 字符型变量字符型变量用来存放字符常量 一个字符变量在内存中占一个字节 所以只能放一个字符 C语言中没有字符串变量 通常用字符数组来存放字符串 字符数组将在后面章节为大家介绍 将一个字符常量放到一个字符变量中 实际上不是把该字符本身放到内存单元中去 而是将该字符的相应的ASCII代码放到存储单元中 因此 字符型数据和整型数据之间可以通用 一个字符数据既可以以字符形式输出 也可以以整数形式输出 例如 chara A 与chara 65 是等价的 因为字符 A 在计算机中的形式是整型65 2 4常量和变量 例2 15 大写字母转换为小写字母 includevoidmain chara b a X b Y a a 32 b b 32 printf c c n a b 2 5运算符和表达式 1 运算符运算符在C语言中主要用于执行程序代码的运算 例如 2 3 其操作数是2和3 而运算符则是 C语言运算符非常丰富 大致可以分为13种类型 1 算术运算符 2 关系运算符 3 逻辑运算符 4 位运算符 5 赋值运算符 及其扩展 2 5运算符和表达式 6 条件运算符 7 逗号运算符 8 指针运算符 9 求字节数 sizeof 10 强制类型转换 类型 11 分量运算符 12 下标运算符 13 其它 函数调用运算符 2 5运算符和表达式 2 表达式用运算符和括号将运算对象 常量 变量和函数等 连接起来的 符合 语言语法规则的式子 称为表达式 单个常量 变量或函数 可以看作是表达式的一种特例 将单个常量 变量或函数构成的表达式称为简单表达式 其它表达式称之为复杂表达式 2 5运算符和表达式 2 5 1算术运算符1 基本算术运算符 说明 1 为双目运算符号 要求有两个操作数 2 两整数相除 结果为整数 舍去小数部分 例如 9 5的值为1而不是1 8 5 2 1的值为3而不是3 5 3 要求两侧均为整型数据 例如 7 3的值为1 4 字符型数据可以和数值型数据混合运算例如 A 32的值为a 2 5运算符和表达式 2 算术表达式 1 定义 用算术运算符和括号将操作数 包括常量 变量和函数 连接起来的式子 例如 a b c d2 a PI r rc sin x d cos x 2 优先级 先乘除后加减 3 结合方向 从左至右 4 表达式的值 数值型 int long unsigned double 2 5运算符和表达式 例2 16 已知floata 2 0 intb 6 c 3 求解a b c 1 5 a fabs 5 2 5运算符和表达式 2 5 2自加和自减运算符1 作用 自增运算符的作用是使单个变量的值增 自减运算的作用是使单个变量的值减 i和i 等价于i i 1 i和i 等价于i i 12 用法与运算规则自增 自减运算符都有两种用法 1 前置运算 运算符放在变量之前 变量 变量 2 后置运算 运算符放在变量之后 变量 变量 两者之间的区别 i i 先使变量的值增 或减 然后将变化后的值作为表达式的值 即先增减 后使用 i 先将变量的原值作为表达式的值 然后再使变量的值增 或减 即先使用 后增减 2 5运算符和表达式 2 5 2自加和自减运算符3 说明 1 和 的操作对象是变量 不能用于常量和表达式 例如5 和 a b 都是非法的 2 和 的结合方向 自右向左 3 优先级 例如 j k 等价于 j k 变量j是和 还是 结合 取决于这两个运算符的优先级 优先级高于 所以j和 结合 再例如 i j应该写成 i j 2 5运算符和表达式 2 5 2自加和自减运算符 例2 17 i 3 则执行j i 语句后 i和j的值分别是多少 例2 18 i 3 则执行j i 语句后 i和j的值分别是多少 例2 19 a 3 b a c b a b c的值各为多少 2 5运算符和表达式 2 5 2自加和自减运算符 例2 20 写出以下程序的执行结果 includevoidmain intx 1 y y x x x printf d n y 2 5运算符和表达式 2 5 3取负值运算符取负值运算符用来改变一个操作数的正号或负号 在一个正数前加取负值运算符 则该数变为负数 在一个负数前加取负值运算符 则该数变为正数 说明 1 一元运算符 x b 2 优先级 例2 21 inta 8 b 6 c 5 y y a b c a c 执行后 y的值是多少 分析 对于变量a 前面是取负值运算符 后面是减号 两者相比取负值运算符的优先级高 因此变量a选择和取负值运算符结合 即表达式等价于y a b c a c 通过计算可知y的值为 47 2 5运算符和表达式 2 5 3取负值运算符 例2 22 自增自减运算符和取符号运算符综合应用 includevoidmain inti 5 printf d n i 输出6printf d n i 输出5printf d n i 输出5 但i的值为6printf d n i 输出6 但i的值为5printf d n i 输出 5 但i的值为6printf d n i 输出 6 相当于 i printf d n i 输出5 2 5运算符和表达式 2 5 4赋值运算符1 简单赋值运算符 1 符号 2 格式 变量标识符 表达式 3 作用 将一个数据 常量或表达式 赋给一个变量2 赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子 赋值表达式中的 表达式 又可以是一个赋值表达式 说明 1 结合方向 自右向左 2 优先级 低于算术运算符 关系运算符 逻辑运算符 3 左侧必须是变量 不能是常量或表达式 2 5运算符和表达式 2 5 4赋值运算符 4 赋值表达式的值与变量值相等 且可嵌套 例如 a 3 将常量3赋值给变量ad func 将函数func的返回值赋值给变量da b 5 遵循右结合规则 等价于a b 5 a b 10 c 将10 c的值赋值给b 再将b的值赋值给变量ac 3 d 2 将算数表达式的值赋值给变量cx 6 y 将关系表达式的值赋值给变量xx x y 将逻辑表达式的值赋值给变量xa 5 c 6 等价于a 5 c 6 表达式值为11 a 11 c 6a b 4 c 6 等价于a b 4 c 6 表达式值为10 a 10 b 4 c 6a b 10 c 2 等价于a b 10 c 2 表达式值为5 a 5 b 10 c 2 2 5运算符和表达式 2 5 4赋值运算符3 复合赋值运算符 1 种类 2 含义 exp1op exp2等价于exp1 exp1opexp2例如 a 3等价于a a 3x y 8等价于x x y 8 而不是x x y 8x 5等价于x x 5 2 5运算符和表达式 2 5 4赋值运算符 例2 25 a 12 则表达式a a a a的值是多少 分析计算步骤 a a a 等价于 a a a a 计算可得a的值为12 144 132 a 132 等价于 a a 132 计算可得a的值为 132 132 264 因此 表达式a a a a的值为264 2 5运算符和表达式 例2 26 inta 2 a 4 1 则表达式a a a a 3的值是多少 分析计算步骤 a 4 1 等价于 a a 3 计算可得a的值为2 a 3 等价于 a a 3 计算可得a的值为6 a 6 等价于 a a 6 计算可得a的值为0 a 0 的运算中 a的值为0 再进行 a 0 的运算中 a的值为0 因此 表达式a a a a 3的值为0 2 5运算符和表达式 2 5 5逗号运算符说明 1 形式 表达式1 表达式2 表达式n 2 结合性 从左向右 3 优先级 逗号表达式的优先级是所有运算符里最低的 只要没有用括号括起来 它总是最后一个计算 4 逗号表达式的值 逗号表达式的值等于表达式n的值 但是这不意味着只需要执行最后一个表达式n 前面所有的表达式必须按照从左到右的顺序执行一遍 在很多情况下 使用逗号表达式并非要得到整个逗号表达式的值 而只是从左到右得到各个表达式的值 5 用途 常用于循环for语句中 2 5运算符和表达式 例2 27 逗号运算符示例一 a 3 5 a 4 a 15 表达式值为60a 3 5 a 4 a 5 a 15 表达式值为20 例2 27 逗号运算符示例二 x a 3 6 3 赋值表达式 表达式值为18 x 18x a 3 6 a 逗号表达式 表达式值为18 x 3 2 5运算符和表达式 例2 28 写出以下程序的执行结果 includevoidmain inta b c a 1 b 2 c 3 printf d d d n a b c printf d d d n a b c b c 2 5运算符和表达式 例2 29 写出以下程序的执行结果 includevoidmain inta 10 a 3 5 a 4 printf a d n a 2 5运算符和表达式 2 5 6条件运算符条件运算符由 和 两个字符组成 用来连接3个运算对象 是C语言中唯一的三目运算符 用条件运算符将运算对象连接成的式子称为条件表达式 其中运算对象可以是算术表达式 关系表达式 逻辑表达式 赋值表达式和条件表达式 1 一般形式 2 功能 计算表达式1的值 如果为非0 则计算表达式2的值 并将其作为整个条件表达式的值 否则计算表达式3的值 并将其作为真个条件表达式的值 2 5运算符和表达式 2 5 6条件运算符3 说明 优先级 高于赋值运算符和逗号运算符 而低于其他运算符 例如 m0 1 xb a c d c d等价于a b a c d c d 2 5运算符和表达式 例2 32 输入两个数 求其中较大的数和较小的数 includevoidmain intx y max min scanf d 2 5运算符和表达式 2 5 7求字节运算符求字节运算符 sizeof 是一个单目运算符 它的功能是返回变量或类型修饰符的字节长度 其一般形式为 sizeof 变量名 或sizeof 类型名 或sizeof 表达式 例2 34 求字节运算符示例 includevoidmain inta 5 floatx 3 2 y 6 4 printf d n sizeof a 值为 4 在TURBOC中为2 在VC 6 0下为4 printf d n sizeof char 值为 1printf d n sizeof x y 值为 4printf d n sizeof double 值为 8 2 5运算符和表达式 2 5 8位运算符由于C语言可直接对硬件编程 在系统软件设计中要求能对位进行运算 因此 C语言提供了6种位运算符 支持位运算等汇编操作 2 5运算符和表达式 1 按位取反运算符按位取反运算符 为单目运算符 具有右结合性 其功能是对参与运算的数的各二进位按位求反 例2 35 按位取反运算示例 includevoidmain intx 5 y y x printf 5 d n y 2 5运算符和表达式 2 按位与运算按位与运算符 是双目运算符 其功能是参与运算的两数各对应的二进位相与 只有对应的2个二进位均为1时 结果位才为1 否则为0 参与运算的数以补码方式出现 按位与运算通常用来对某些二进制位清0或保留某些二进制位 在需要清0的位置上 将与它进行运算对象的对应的二进制位置0 需要保留原值的位置 则将对应的二进制位置1 2 5运算符和表达式 例2 36 按位与运算示例 includevoidmain inta 9 b 5 c c a 2 5运算符和表达式 3 按位或运算按位或运算符 是双目运算符 其功能是参与运算的两数各对应的二进位相或 只要对应的2个二进位有一个为1时 结果位就为1 参与运算的两个数均以补码出现 按位或运算通常用来对某些二进制位置1或保留某些二进制位 在需要置1的位置上 将与它进行运算对象的对应的二进制位置1 需要保留原值的位置 则将对应的二进制位置0 2 5运算符和表达式 例2 37 按位或运算示例 includevoidmain inta 9 b 5 c c a b printf a d nb d nc d n a b c 2 5运算符和表达式 4 左
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流管理专业基础试题及答案
- 专业美发测试题及答案大全
- 专业序列面试题目及答案
- 幼师学期末个人工作汇报
- 借物喻人动画讲解
- 2025至2030中国心血管外科设备和技术行业调研及市场前景预测评估报告
- 中等长度导管临床应用汇报
- 2025至2030中国浮式生产系统行业项目调研及市场前景预测评估报告
- 双十一推广月工作总结
- 离婚后公积金贷款还款责任调整协议
- ktv消防安全培训制度
- GB/T 44923-2024成年人三维头部模型
- GB 20072-2024乘用车后碰撞安全要求
- 新课标高中化学实验目录人教
- 【培训课件】《统计法》宣传课件 建立健全法律制度依法保障数据质量
- 九年级(上册)历史教材课后习题参考答案【人教部编版】
- 食堂日管控周排查月调度记录表
- 初中音乐教学课件走进京剧
- 智能传感与检测技术 课件 第4章压电式传感器
- 心内科心衰一病一品护理成果汇报
- 甲状腺癌的围手术期护理
评论
0/150
提交评论