C语言基础——词法符号

词法符号

关键字 标识符 运算符 标点符号 分隔符

1.关键字

1.1存储类型(决定变量存放的位置):

auto(自动型) static(静态) extern(外部引用) register(寄存器)

1.2数据类型(决定变量所占的空间大小):

char(字符型1)
int(整型4) short(短整型2) long(长整型4)
float(单精度浮点型4) double(双精度浮点型8)
signed(有符号) unsigned(无符号)

1.3构造数据类型(用户可自定义类型):

struct(结构体)
union(共用体)
enum(枚举)

1.4选择结构:

if else switch case default

1.5循环结构:

for while goto do break continue

1.6其他:

void(空类型 在函数、指针会见到)
typedef(重定义 在结构体会见到,结构体名字比较长,可以起个小名)
const(常量化 readonly 和void一起在指针会讲)
sizeof(计算数据所占空间大小)
volatile(防止编译器优化 ,平常用不到)
return(返回值)

2.标识符

命名规则:

  1. 由字母、数字、下划线组成
  2. 开头不能是数字
  3. 不能和关键字重复
  4. 最好见名知意

3.运算符

算术运算符、逻辑运算符、位运算符、关系运算符、赋值运算符、三目运算符

3.1算术运算符

++ – + - * /
需要注意的问题
3.1.1 整数相除,结果会向下取整 需要转换成浮点类型

int a=5/2;
printf("%d\n",a);		//2向下取整
float a=5/2;
printf("%f\n",a);		//2.000000
float a=5/2.0;
printf("%f\n",a);		//2.500000
float a=(float)5/2;		//强制转换,只在当前这个位置进行转换
printf("%f\n",a);		//2.500000

3.1.2 %只能用于整数之间的运算(浮点无意义)
3.1.3 a++ 与++a的区别 ++在后,后赋值 在前先赋值与()等无关,不影响其数值 --同理
例如
a=10 ,b=5
c=(b++)+a ----> c=10+5=15

3.2逻辑运算符

&& || ! 0假 1真
&&逻辑与: 全真则真,一假则假
||逻辑或 :一真则真,全假则假
!逻辑非:取反 非真即假,非假则真

printf("%d\n",15>9&&9>11);			//0
printf("%d\n",15>9||9>11);			//1
printf("%d\n",15>9&&!(9>11));		//1

(重点)截断法则:
逻辑与运算:当前边的表达式结果为假,后边表达式不再执行,直接返回假。
逻辑或运算:当前边的表达式结果为真,后边表达式不再执行,直接返回真。
例题: a=1,b=2,c=3,d=4,n=7 (a>b)&&(n=c<d) n=?
答案: n=7;(注意截断法则)

3.3位运算符

& | ^ ~ << >>
位运算使用的都是二进制 0 1
规则
& 位与:全1则1,有0则0
| 位或:有1则1,全0则0
^异或:相同为0,不同为1
~取反:0–》1 1–》0
示例

int a=6,b=11;
int c=a&b;
//6:  110
//11:1011
//&: 0010==2
printf("%d\n",c);

补充:整数的二进制表示有3种:原码、反码、补码
在这里插入图片描述
例如: int a=8,b=-6(因为int有4字节,占32位二进制数)
a 原码 0000 0000 0000 0000 0000 0000 0000 1000
反码 0000 0000 0000 0000 0000 0000 0000 1000
补码 0000 0000 0000 0000 0000 0000 0000 1000
b 原码 1000 0000 0000 0000 0000 0000 0000 0110(第一位1表示符号位,1为负0为正)
反码 1111 1111 1111 1111 1111 1111 1111 1001
补码 1111 1111 1111 1111 1111 1111 1111 1010
<<左移 >>右移
除二进制计算外,另有简便方法

6 <<左移 两位 即62^2
6<<2==24 -->6
22=24
负数也适用
-6<<2==-24
-6
2^2=-24
>>右移两位 即11/2^3
11>>3==1 --> 11/2^3=1

3.4关系运算符

< > <= >= != == 相等 (区分:=赋值 )

3.5 赋值运算符

= += -= *= /= %=

3.6条件运算符(三目运算符)

表达式1?表达式2:表达式3;
运算法则:先判断表达式1是否成立,如果成立则执行表达式2,不成立则执行表达式3;
取两者最大值
int a=3,b=6; c=a>b?a:b;

3.7运算符优先级

单算移关与,异或逻条赋
单目运算符 ! ++ – ~
算术运算符 * / % + -
移位运算符 << >>
关系运算符 < <= > >= == !=
位与运算符 &
异或运算符 ^ |
逻辑运算符 && ||
条件运算符 ? :
赋值运算符 = += -= *= /= %=

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值