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运算符
自动类型转换:
类型强转(casting):
(类型)表达式 —— > 一元运算符,表达式的类型
明确转化的是哪个表达式