逗号表达式
注意点:
x=(i=4,i%3)
//x=1
x=i=4,i%3
//x=4
将输入字符转化为数据类型
int getint()
{
char c;
int x ;
for(x=0,c=getchar();c>='0'&&c<='9';c=getchar())
x=10*x+c-'0';
return x;
}
注意:
++a立刻发生
a++在下一个序列点之前做
++可以用于浮点数
二进制位运算符
操作对象:单个bit(二进制码)
~按位求反
&与:变0
|或:变1
^异或,按位加:二进制加法不进位,取反
两次按位加复原
左移<< 左移n位,低n位填入0 左移1位相当于乘2
右移>> 高n位可能填入?
无符号填0,有符号:逻辑移位
右移1位相当于除以2
应用:压缩
%hd short类型
加密
打印二进制数
limits.h
CHAR_BIT->8
类型转换
整数提升
char,short,unsigned short 先转换成int,unsigned再运算
short a;
sizeof(a)=2;
sizeof(-a)=4;
一般算术转换
char/short->int->unsigned->long->unsigned long->float->double->long double
赋值转换
向左看齐
强制类型转换
(类型名)操作数
(double)i
(double)x=10 /错误
枚举类型
枚举常量用标识符命名
enum color{WHITE,YELLOW,AIFHS}
用枚举类型定义符号常量
enum{WIN,LOSE=2,TIE,ERROR=-1}
//TIE=3
枚举变量
基本的标准输入与输出
输出puts(s) s为数组
读入gets(s) 已去掉
printf
scanf
goto
goto xxx ;
xxx:
(1)与if语句连用形成循环。
(2)跳出循环
注意:尽量少用goto,为了增强结构化
break,continue语句
break:(1)在switch中终止case
(2)循环中强迫终止,跳过循环检测
continue:在循环中和if连用
找素数
暴力法
筛选法
随机数
int rand(void)
srand() :rand函数初始化
用time(NULL)初始化