选择语句
选择语句: 代码:自顶向下执行
单分支 多分支
if(表达式)
{
语句块;//不止可以写一条语句,可以写多条语句;
}
注意:
- 如果不写{},那么会默认执行当前if下面的一条语句。
- 注意else的匹配,else只会和最近的一条if语句匹配
- 什么时候去执行语句块?
当表达式为真的时候。
只有0为假 任何非0的数都为真
循环语句
while(); do{}while(); for();
while(表达式) do for(表达式1;表达式2;表达式3);
{ { {
语句块; 语句块;至少会执行一次 语句块
} }while(表达式); }
补充:先执行语句块,然后进行判断(表达式)
for: 表达式1:初始化 表达式2:判断语句 表达式3:步进 (左闭右开)
函 数
函数名() : 参数列表
单个单词:首字母大写Add() //Add(int a;int b)形式参数
多个单词:每个单词首字母大写 AddTwoNum()或Add_Two_Num() (驼峰式命名) //括号中存放参数列表
数 组
数组:存放一组相同数据类型的集合
如果没有被初始化,默认值为随机值。
栈 局部变量的随价值都是0xcccccccc 烫… 堆的随机值是0xcdcdcdcd 囤…
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int len=sizeof(arr)/sizeof(arr[0]);
//sizeof——>求字节大小
//sizeof(arr)——>数组名 代表整个数组的字节大小
//sizeof既是关键字也是标识符
操作符
移位操作符:
左移:<< ; 右移:>>
左移:右边统一补0
eg:
int i=15;
0000 0000 0000 0000 0000 0000 0000 1111 ; 15
00000 0000 0000 0000 0000 0000 0000 111 ; 7 ; 15<<1
int i=-1;
printf("%d\n",i>>1);
源码: 1000 0000 0000 0000 0000 0000 0000 0001
反码: 1111 1111 1111 1111 1111 1111 1111 1110
补码: 1111 1111 1111 1111 1111 1111 1111 1111
i>>1 : 11111 1111 1111 1111 1111 1111 1111 111
1是符号位
-1<<1
1111 1111 1111 1111 1111 1111 1111 1111 补码 -1
111 1111 1111 1111 1111 1111 1111 11110
1111 1111 1111 1111 1111 1111 1111 1101 反码
1000 0000 0000 0000 0000 0000 0000 0010 源码 -2
位操作符: &:按位与 ^:按位异或 |:按位或
//a+=1;//a+a+1;
逻辑操作符: && 逻辑与 || 逻辑或
条件操作符:exp1?exp2:exp3;
表达式1? 表达式2: 表达式3;
如果表达式1为真,那么结果为表达式2,否则为表达式3;
逗号表达式:
exp1,exp2,exp3,…expn;整个表达式的结果为最后一个表达式