C语言笔记

C语言

C运算符 分类:

(1)根据运算性质:赋值运算符、算术运算符、增1和减1、类型强转、关系运算符、逻辑运算符、位运算符······
(2)根据操作数个数:一元(单目)运算符······

C表达式:

由 运算符 和 操作数 构成

算术运算符:

除法(Division):
(1)整数除法:a and b are integers
(2)浮点数除法:a or b or both are floats
求余(Modulus):也称 取模 ,操作数必须是整数

算术表达式 优先级:

取相反数 > 乘、除 > 加、减

算术表达式 结合性:

左结合 & 右结合:-(-2) & 圆括号可改变且优先级最高

实例:分离数位

153/100 = 1
153-1*100 = 53——153%100 = 53——153/10 = 15
53/10 = 5———— 53/10 = 5————15%10 = 5
153%10 = 3——153–1 * 100–5 * 10 = 3

求余运算用途:????

求模 : H(k) = k % p 可将一个大范围自然数集合映射到一个只有p个元素的小集合上
比如:随机函数 rand ( ) 可生成一个在 0 ~ 32767 之间的随机数,将数的范围控制在指定范围 ( 1 ~ 100 ) 内。
magic = rand()% 100 ; // 0 ~ 99
magic = rand()% 100 + 1 ; // 1 ~ 100
生活中:一天24小时,一周7天,一年12个月
能否整除:整除———>%为0
其他用途求素数,最大公约数,判断闰年,约瑟夫环······

进行更复杂的数学运算:

常用标准数学函数:#include <math.h>
exp(x) ——> e^x
sqrt(x) ——> x的平方根,x>=0
pow(x,y)——> x^y
fab(x) ——> |x|
log(x) ——> ln x ,x>0
log10(x)——> lg x ,x>0
sin(x) ———> sinx,x为弧度值
cos(x)———>cosx,x为弧度值

赋值运算符:

=:右结合,左右值类型一致
eg:x = (y = 0);

赋值表达式:

1.简单赋值(simple assignment):算术>赋值
a = a + 1;
读 写
2.多重赋值(multiple assignment)
3.复合赋值(combined assignment)

变量赋值:

1.赋值表达式语句
2.初始化:注:变量初始化需用","分隔
int a=b=3;(错)————> int a=3,b=3;

增1/减1运算符:

1.操作数只能是变量,不能是表达式 (-n)++ ————>错
2.运行速度更快
3.一元运算符右结合 > 二元
4.操作数的值是相同的,但表达式的值是不同的
eg:m = ++n-2 —— > n = n +1;&m = n-2;
m = n+±2 —— > m = n-2;&n = n+1;
5.良好的程序设计风格:在一行语句中,一个变量只出现一个增1或减1运算符

自动类型转换:C语言笔记

类型强转(casting):

(类型)表达式 —— > 一元运算符,表达式的类型
明确转化的是哪个表达式