C语言中的符号.docx

上传人:小飞机 文档编号:3060735 上传时间:2023-03-10 格式:DOCX 页数:9 大小:41.02KB
返回 下载 相关 举报
C语言中的符号.docx_第1页
第1页 / 共9页
C语言中的符号.docx_第2页
第2页 / 共9页
C语言中的符号.docx_第3页
第3页 / 共9页
C语言中的符号.docx_第4页
第4页 / 共9页
C语言中的符号.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言中的符号.docx》由会员分享,可在线阅读,更多相关《C语言中的符号.docx(9页珍藏版)》请在三一办公上搜索。

1、C语言中的符号C语言中的符号 运算符的种类C语言的运算符可分为以下几类: 1.算术运算符 用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(+)、自减()共七种。 2.关系运算符 用于比较运算。包括大于()、小于(=)、小于等于(=)和不等于(!=)六种。 3.逻辑运算符 用于逻辑运算。包括与(&)、或(|)、非(!)三种。 4.位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非()、位异或()、左移()六种。 5.赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(

2、&=,|=,=,=,= 例如:a=0x11等价于 a= a0x11。 = a=0x11等价于 a= a,.)等几种。 1.C的数据类型 基本类型,构造类型,指针类型,空类型 2.基本类型的分类及特点 类型说明符 字节 数值范围 字符型char 1 C字符集 基本整型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

3、双精度实型 double 8 1/7E-3081/7E+308 3.常量后缀 L或l 长整型 U或u 无符号数 F或f 浮点数 4.常量类型 整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。 5.数据类型转换 自动转换 在不同类型数据的混合运算中,由系统自动实现转换, 由少字节类型向多字节类型转换。 不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。 强制转换 由强制转换运算符完成转换。 6.运算符优先级和结合性 一般而言,单目运算符优先级较高,赋值运算符优先级低。 算术运算符优先级较高,关系和逻辑运算符优先级较低。 多数运算符具有左结合性,单目

4、运算符、三目运算符、 赋值 7.表达式 表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。 表达式求值按运算符的优先级和结合性所规定的顺序进行。 表示输出类型的格式字符 格式字符意义 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀O) x 以十六进制形式输出无符号整数(不输出前缀OX) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e 以指数形式输出单、双精度实数 g 以%f%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串 标志字符为-、+、#、空格四种,其意义下表所示: 标

5、志格式字符 标 志 意 义 - 结果左对齐,右边填空格 + 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号 # 对c,s,d,u类无影响;对o类, 在输出时加前 缀o 对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点 格式字符串 格式字符串的一般形式为: %*输入数据宽度长度类型 其中有方括号的项为任选项。各项的意义如下: 1.类型 表示输入数据的类型,其格式符和意义下表所示。 格式 字符意义 d 输入十进制整数 o 输入八进制整数 x 输入十六进制整数 u 输入无符号十进制整数 f或e 输入实型数(用小数形式或指数形式) c 输入单个字符 s 输入字符串

6、 转义字符 转义字符是一种特殊的字符常量。转义字符以反斜线”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。 常用的转义字符及其含义 转义字符 转义字符的意义 n 回车换行 t 横向跳到下一制表位置 v 竖向跳格 b 退格 r 回车 f 走纸换页 反斜线符” 单引号符 a 鸣铃 ddd 13位八进制数所代表的字符 xhh 12位十六进制数所代表的字符 广义地讲,C语言字符集中的任何一个字符均可用转义字符

7、来表示。表2.2中的ddd和xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如101表示字?quot;A” ,102表示字母”B”,134表示反斜线,XOA表示换行等。转义字符的使用 在C语言中,对变量的存储类型说明有以下四种: auto 自动变量 register 寄存器变量 extern 外部变量 static 静态变量 自动变量和寄存器变量属于动态存储方式, 外部变量和静态变量属于静态存储方式。在介绍了变量的存储类型之后, 可以知道对一个变量的说明不仅应说明其数据类型,还应说明其存储类型。 因此变量说明的完整形式应为: 存储类型说明符 数据类型说明符 变量名,

8、变量名; 例如: 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为外部整型变量 与指针有关的各种说明和意义见下表。 int *p; p为指向整型量的指针变量 int *pn; p为指针数组,由n个指向整型量的指针元素组成。 int (*p)n; p为指向整型二维数组的指针变量,二维数组的列数为n int *p p为返回指针值的函数,该指针指向整型量 int (*p) p为指向函数的指针,该函数返回整型量 in

9、t *p p为一个指向另一指针的指针变量,该指针指向一个整型量。 指针变量的赋值 p可以有以下两种方式: (1)指针变量初始化的方法 int a; int *p=&a; (2)赋值语句的方法 int a; int *p; p=&a; (1)取地址运算符& (2)取内容运算符* 按位与运算符 参加运算的两个数据,按二进制位进行“与”运算。 运算规则: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。 另,负数按补码形式参加按位与运算。

10、“与运算”的特殊用途: 清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。 取一个数中指定位 方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。 例:设X=10101110, 取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 00

11、11 | 0000 0101 = 0000 0111 因此,3|5的值得7。 另,负数按补码形式参加按位或运算。 “或运算”特殊作用: 常用来对一个数据的某些位置1。 方法:找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。 例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。 异或运算符 参加运算的两个数据,按二进制位进行“异或”运算。 运算规则:00=0; 01=1; 10=1; 11=0; 即:参加运算的两个对象,如果两个相应位为“异”,则该位结果为1,否则为0。 “异或运算”的特殊作用:

12、使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。 例:X=10101110,使X低4位翻转,用X 0000 1111 = 1010 0001即可得到。 与0相异或,保留原值 ,X 0000 0000 = 1010 1110。 从上面的例题可以清楚的看到这一点。 取反运算符 参加运算的一个数据,按二进制位进行“取反”运算。 运算规则:1=0; 0=1; 即:对一个二进制数按位取反,即将0变1,1变0。 使一个数的最低位为零,可以表示为:a&1。 1的值为1111111111111110,再按“与”运算,最低位一定为0。因为“”运算符的优先级比算术运

13、算符、关系运算符、逻辑运算符和其他运算符都高。 左移运算符 将一个运算对象的各二进制位全部左移若干位。 例:a = a 2 将a的二进制位右移2位, 左补0 or 补1 得看被移数是正还是负。 运算符把 expression1 的所有位向右移 expression2 指定的位数。expression1 的符号位被用来填充右移后左边空出来的位。向右移出的位被丢弃。 例如,下面的代码被求值后,temp 的值是 -4: -14 右移两位等于 -4 。 vartemp = -14 2 无符号右移运算符 运算符把 expression1 的各个位向右移 expression2 指定的位数。右移后左边空出

14、的位用零来填充。移出右边的位被丢弃。 例如:vartemp = -14 2 变量 temp 的值为 -14 ,向右移两位后等于 1073741820 。 复合赋值运算符 位运算符与赋值运算符结合,组成新的复合赋值运算符,它们是: &= 例: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型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足, 如果整型数据为正数,左边补16个0。 如果整型数据为负数,左边补16个1。 如果整形数据为无符号数,左边也补16个0。 如:long a=123;int b=1;计算a & b。 如:long a=123;int b=-1;计算a & b。 如:long a=123;unsigned int b=1;计算a & b。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号