C语言词法符号(续)

二、标识符

用来标示变量、函数、自定义项目的名称,例如我们申请一个变量我们要给一个变量名。

规则:1、由数字、字母、下划线组成

           2、开头不能是数字

           3、不能和关键字重复

           4、最好是能够见名知意

三、运算符

1、算数运算符

+、-、*、/ 这四个就是加减乘除,无需赘述

这个符号是取余的意思,它是只能用于整数运算的

++、-- 这两个符号分别是自增和自减,它们放在变量的前面和后面还有一些讲究,例如:

int a=5,b=0,c=0;
b=a++;//这时a是先被取值再自增,此语句执行后b=5,a=6
c=++a;//此时a已经为6了,++a是先自增再赋值,也就是说现在a=7,然后赋值给c也等于7

2、逻辑运算符

&&  逻辑与 实际上就是数学上的并集,要满足&&前后所有的逻辑表达式,一假则假,全真为真

||     逻辑或 实际上是数学上的合集,只需要满足一个逻辑表达式即可,一真则真,全假为假

!   逻辑非  非真即假,非假即真

说一下布尔值,真为1,假为零;

实际上使用过程中只要是不为零都为真,例如while(1)、while(2)都是真,都会执行循环

截断法则

当使用逻辑与时,前面的如果为假,后面的表达式就不再计算了

当使用逻辑非时,前面的如果为真,后面的表达式就不再计算了

例如

int a=0,b=0;
a>b&&(a++)>b;//此时a>b已经为假,不再执行后面的逻辑表达式
a==b||(a++)>b;//此时a==b已经为真,不再执行后面的逻辑表达式
此为截断法则

3、位运算符

~(取反)、&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)

位运算符主要针对二进制数字进行操作

正常我们说数字10,他是一个十进制数,那么他的二进制相当于2^3+2^1,一个int类型是4个字节,为32位,数字10也就是0000 0000 0000 0000 0000 0000 0000 1010;从右向左分别是第0位,第一位以此类推

按位与:全1为1,否则为0;

按位或:有1为1,否则为0;

按位异或:不同为1,相同为0

如果说10与1按位与、按位或、按位异或

10:      0000 0000 0000 0000 0000 0000 0000 1010

01:      0000 0000 0000 0000 0000 0000 0000 0001

10&1   0000 0000 0000 0000 0000 0000 0000 0000

10|1     0000 0000 0000 0000 0000 0000 0000 1011

10^1    0000 0000 0000 0000 0000 0000 0000 1011

10<<2(10左移2位)0000 0000 0000 0000 0000 0000 0010 1000 后面用0补位

10>>2(10右移2位)0000 0000 0000 0000 0000 0000 0000 0010 前面用最前面的数来补位

~10     1111 1111 1111 1111 1111 1111 1111 0101

数字在电脑中存储都是以补码的形式,正数的补码是它自己,负数的补码是它取反+1,但符号位(即最高位)不动;

例如

10

正数源码 :0000 0000 0000 0000 0000 0000 1010

正数补码: 0000 0000 0000 0000 0000 0000 1010

正数取反: 1111  1111  1111  1111  1111  1111  0101(即负数补码)

负数源码: 1000 0000 0000 0000 0000 0000 1011(取反加1,即-11)

-10

负数源码: 1000 0000 0000 0000 0000 0000 1010

负数补码: 1111 1111  1111  1111  1111  1111  0110

正数补码: 0000 0000 0000 0000 0000 0000 1001

正数源码 :0000 0000 0000 0000 0000 0000 1001(即9)

将a的n位置1:a|(1<<n)

将a的n位置0:a&(~(1<<n))

4、关系运算符

<(小于)、>(大于)、==(等于)、>=(大于等于)、<=(小于等于)、!=(不等于)

这几个都是数学上常见的关系运算符,只是写法不同

+=、-=、*=、/=、%=这五个可以这样写,例如a+=5;它相当于a=a+5;其他四个关系运算符也是一样;

这里说一下下面这种表达式:

3<8<5;这个表达式为真,因为3<8为真,为真取布尔值为1,那么接下来1<5自然为真

5、三目运算符

布尔值?表达式1:表达式2;       //布尔值为真执行表达式1,布尔值为假执行表达式2

例如:val>=0?val:0-val; //val为-1时,执行0-(-1);val为1时执行1;

优先级口诀:单算移关与,异或逻条赋,从左向右单条赋;

四、标点符号

;、()、{}、[ ]

五、分隔符

空格 、TAB键、换行符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值