C语言中的符号

上传人:琴**** 文档编号:19521644 上传时间:2017-11-19 格式:DOC 页数:9 大小:46KB
返回 下载 相关 举报
C语言中的符号_第1页
第1页 / 共9页
C语言中的符号_第2页
第2页 / 共9页
C语言中的符号_第3页
第3页 / 共9页
C语言中的符号_第4页
第4页 / 共9页
C语言中的符号_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《C语言中的符号》由会员分享,可在线阅读,更多相关《C语言中的符号(9页珍藏版)》请在金锄头文库上搜索。

1、C 语言中的符号运算符的种类 C 语言的运算符可分为以下几类:1.算术运算符用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余( 或称模运算,%)、自增(+)、自减( )共七种。2.关系运算符用于比较运算。包括大于()、小于(=)、小于等于() 六种。5.赋值运算符用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,=,=,= 例如:a=0x11 等价于 a= a0x11。,.) 等几种。1.C 的数据类型基本类型,构造类型,指针类型,空类型2.基本类型的分类及特点类型说明符 字节 数值范围字符型 char 1 C 字符集

2、基本整型 int 2 -3276832767短整型 short int 2 -3276832767长整型 long int 4 -214783648214783647无符号型 unsigned 2 065535无符号长整型 unsigned long 4 04294967295单精度实型 float 4 3/4E-383/4E+38双精度实型 double 8 1/7E-3081/7E+3083.常量后缀L 或 l 长整型U 或 u 无符号数F 或 f 浮点数4.常量类型整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。5.数据类型转换自动转换在不同类型数据的混合运算中,由系统

3、自动实现转换, 由少字节类型向多字节类型转换。 不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。强制转换由强制转换运算符完成转换。6.运算符优先级和结合性一般而言,单目运算符优先级较高,赋值运算符优先级低。 算术运算符优先级较高,关系和逻辑运算符优先级较低。 多数运算符具有左结合性,单目运算符、三目运算符、 赋值7.表达式表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。 表达式求值按运算符的优先级和结合性所规定的顺序进行。表示输出类型的格式字符 格式字符意义d 以十进制形式输出带符号整数( 正数不输出符号)o 以八进制形式输出无符

4、号整数( 不输出前缀 O)x 以十六进制形式输出无符号整数(不输出前缀 OX)u 以十进制形式输出无符号整数f 以小数形式输出单、双精度实数e 以指数形式输出单、双精度实数g 以%f%e 中较短的输出宽度输出单、双精度实数c 输出单个字符s 输出字符串标志字符为-、+ 、#、空格四种,其意义下表所示:标志格式字符 标 志 意 义- 结果左对齐,右边填空格+ 输出符号( 正号或负号 )空格输出值为正时冠以空格,为负时冠以负号# 对 c,s,d , u 类无影响;对 o 类, 在输出时加前缀 o 对 x 类,在输出时加前缀 0x;对 e,g,f 类当结果有小数时才给出小数点格式字符串格式字符串的一

5、般形式为: %*输入数据宽度长度类型 其中有方括号 的项为任选项。各项的意义如下:1.类型表示输入数据的类型,其格式符和意义下表所示。格式 字符意义d 输入十进制整数o 输入八进制整数x 输入十六进制整数u 输入无符号十进制整数f 或 e 输入实型数( 用小数形式或指数形式 )c 输入单个字符s 输入字符串转义字符转义字符是一种特殊的字符常量。转义字符以反斜线”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义” 字符。例如,在前面各例题 printf 函数的格式串中用到的 “n”就是一个转义字符,其意义是 “回车换行” 。转义字符主要用来表示那些用一般字符不便

6、于表示的控制代码。常用的转义字符及其含义转义字符 转义字符的意义n 回车换行t 横向跳到下一制表位置v 竖向跳格b 退格r 回车f 走纸换页 反斜线符” 单引号符a 鸣铃ddd 13 位八进制数所代表的字符xhh 1 2 位十六进制数所代表的字符广义地讲,C 语言字符集中的任何一个字符均可用转义字符来表示。表 2.2 中的ddd 和xhh 正是为此而提出的。ddd 和 hh 分别为八进制和十六进制的 ASCII 代码。如101 表示字?quot;A” , 102 表示字母”B”,134 表示反斜线,XOA 表示换行等。转义字符的使用在 C 语言中,对变量的存储类型说明有以下四种:auto 自动

7、变量register 寄存器变量extern 外部变量static 静态变量自动变量和寄存器变量属于动态存储方式, 外部变量和静态变量属于静态存储方式。在介绍了变量的存储类型之后, 可以知道对一个变量的说明不仅应说明其数据类型,还应说明其存储类型。 因此变量说明的完整形式应为: 存储类型说明符 数据类型说明符 变量名,变量名; 例如:static int a,b; 说明 a,b 为静态类型变量auto char c1,c2; 说明 c1,c2 为自动字符变量static int a5=1,2,3,4,5; 说明 a 为静整型数组extern int x,y; 说明 x,y 为外部整型变量与指针

8、有关的各种说明和意义见下表。int *p; p 为指向整型量的指针变量int *pn; p 为指针数组,由 n 个指向整型量的指针元素组成。int (*p)n; p 为指向整型二维数组的指针变量,二维数组的列数为 nint *p() p 为返回指针值的函数,该指针指向整型量int (*p)() p 为指向函数的指针,该函数返回整型量int *p p 为一个指向另一指针的指针变量,该指针指向一个整型量。指针变量的赋值p 可以有以下两种方式:(1)指针变量初始化的方法 int a;int *p=&a;(2)赋值语句的方法 int a;int *p;p=&a;(1)取地址运算符&(2)取内容运算符*

9、按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;即:两位同时为“1”,结果才为“1”,否则为 0例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5 的值得 1。另,负数按补码形式参加按位与运算。“与运算”的特殊用途:(1)清零。如果想将一个单元清零,即使其全部二进制位为 0,只要与一个各位都为零的数值相与,结果为零。(2)取一个数中指定位方法:找一个数,对应 X 要取的位,该数的对应位为 1,其余位为零,此数与 X进行“与运算”可以得到 X 中的指定位。例:设 X=1

10、0101110,取 X 的低 4 位,用 X & 0000 1111 = 0000 1110 即可得到;还可用来取 X 的 2、4、6 位。按位或运算符(|)参加运算的两个对象,按二进制位进行“或”运算。运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;即 :参加运算的两个对象只要有一个为 1,其值为 1。例如:3|5即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5 的值得 7。另,负数按补码形式参加按位或运算。“或运算”特殊作用:(1)常用来对一个数据的某些位置 1。方法:找到一个数,对应 X 要置 1 的位,该数的对应位为 1,其余位为零。

11、此数与 X 相或可使 X 中的某些位置 1。例:将 X=10100000 的低 4 位置 1 ,用 X | 0000 1111 = 1010 1111 即可得到。异或运算符()参加运算的两个数据,按二进制位进行“异或”运算。运算规则:00=0; 01=1; 10=1; 11=0;即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为 1,否则为 0。“异或运算”的特殊作用:(1)使特定位翻转找一个数,对应 X 要翻转的各位,该数的对应位为 1,其余位为零,此数与 X 对应位异或即可。例:X=10101110,使 X 低 4 位翻转,用 X 0000 1111 = 1010 00

12、01 即可得到。(2)与 0 相异或,保留原值 ,X 0000 0000 = 1010 1110。从上面的例题可以清楚的看到这一点。取反运算符()参加运算的一个数据,按二进制位进行“取反”运算。运算规则:1=0; 0=1;即:对一个二进制数按位取反,即将 0 变 1,1 变 0。使一个数的最低位为零,可以表示为:a&1。1 的值为 1111111111111110,再按“与”运算,最低位一定为 0。因为“”运算符的优先级比算术运算符、关系运算符、逻辑运算符和其他运算符都高。左移运算符()将一个数的各二进制位全部右移若干位,正数左补 0,负数左补 1,右边丢弃。操作数每右移一位,相当于该数除以

13、2。例如:a = a 2 将 a 的二进制位右移 2 位,左补 0 or 补 1 得看被移数是正还是负。 运算符把 expression1 的所有位向右移 expression2 指定的位数。expression1 的符号位被用来填充右移后左边空出来的位。向右移出的位被丢弃。例如,下面的代码被求值后, temp 的值是 -4:-14 (即二进制的 11110010)右移两位等于 -4 (即二进制的 11111100)。vartemp = -14 2无符号右移运算符()运算符把 expression1 的各个位向右移 expression2 指定的位数。右移后左边空出的位用零来填充。移出右边的位

14、被丢弃。例如:vartemp = -14 2变量 temp 的值为 -14 (即二进制的 11111111 11111111 11111111 11110010),向右移两位后等于 1073741820 (即二进制的 00111111 11111111 11111111 11111100)。复合赋值运算符位运算符与赋值运算符结合,组成新的复合赋值运算符,它们是:&= 例:a &= b 相当于 a=a & b|= 例:a |= b 相当于 a=a | b= 例:a = b 相当于 a=a b= 例:a = b 相当于 a=a b= 例:a = b 相当于 a=a b运算规则:和前面讲的复合赋值运算符的运算规则相似。不同长度的数据进行位运算如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。以“与”运算为例说明如下:我们知道在 C 语言中 long 型占 4 个字节,int 型占 2 个字节,如果一个 long 型数据与一个 int 型数据进行“与”运算,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号