运算符
1.算术运算符:+、-、*、/、%
%:取余,符号两边必须为整形;
2.关系运算符:> < == != <= >=
3.逻辑运算符:&& || !
&&:逻辑与 全真则真
(表达式1) && (表达式2)
1 && 1 -> 1
1 && 0 -> 0
0 && 0 -> 0
短路法则:表达式1为假,那么就不执行表达式2;
||:逻辑或 有真为真
(表达式1) || (表达式2)
1 || 1 -> 1
1 || 0 -> 1
0 || 0 ->0
短路法则:表达式1为真,那么就不执行表达式2;
!:逻辑非 真为假,假为真
取反
!1 -> 0
!0 -> 1
4.赋值运算符: = += -= *=
a += 10 -> a = a + 10;
5.位运算符: & | ~ ^ >> <<
位与:
12 & 21
00001100 & 00010101 ->4
位或:
00001100 | 00010101 ->00011101 = 29
取反:
~12:11110011(取反) -> 10001101(输出的是补码)
异或:^
12 ^ 21 -> 00001100 ^ 00010101
-> 00011001
>>:右移 右移相当于/2
12 >> 2:00001100 ->00000011
11110011 >> 11111100
差的位置补与符号位相同的
<<:左移 左移相当于*2
差的位置都补0
求字节
sizeof
sizeof(int);
sizeof(1);
int a;
sizeof(a);
逗号运算符
运算的值就是最后一个值
指针运算符
*;取地址上的内容
&:取地址符号;
Int a;
&a;
自增自减:++、- -
三目运算符:
(表达式1)?(表达式2):(表达式3)
如果表达式1为真,那么执行表达式2;
如果表达式1为假,那么执行表达式3;
运算符的优先级
输入输出
格式输出函数
printf(“字符串”):在终端上打印出字符串;
printf(“格式控制串”,输出表):按指定格式向终端输出数据;输出表:实际要输出的数据
格式控制串
%[]:格式空字符,占位置,实际输出的内容是在输出表里
普通字符:是什么字符就输出什么字符;
%i、d:打印十进制的整数;
%x、X:打印十六进制的整数;
%o:打印八进制的整数;
%u:打印无符号的十进制整数;
%c:打印一个单一字符;
%s:打印字符串;
%f:以小数形式打印浮点型数;
%e、E:以科学计数法的方式打印浮点型数;
%g:打印f和e较短的一个;
格式输入函数
scanf(“格式控制串”,地址表);
功能:按指定格式从键盘读入数据,存入地址表指定
存储单元中,并按回车键结束
地址表:变量的地址,常用取地址运算符&
字符输出函数
putchar(); 功能:在终端输出单个字符
getchar(); 功能:从键盘输入单个字符,通常情况我们使用getchar来消除脏字符;
字符串输出输入函数
puts(); gets();
控制语句
1.顺序语句
按照顺序一行一行的运行程序
2.分支语句
单分支
if()
{代码块1;}
else
{代码块2;}
功能:如果表达式为真,执行代码块1,否则执行代码块2;
3.选择语句
switch(表达式) //表达式只能为整形或者字符型
{
case(表达式的值1):
代码块;
break;
case(表达式的值2):
代码块;
break;
…
default;
代码块;
(break;)
}
随机数
srand(time(NULL));
int rand;
循环语句
for循环
for((表达式1);( 表达式2);(表达式3) )
{
代码块;
}
表达式1:循环变量
表达式2:循环条件
表达式3:循环变量的自增自减
功能:
1.判断循环条件,如果满足条件,则执行一次代码块;
2. 执行一次表达式3;
while循环
while(表达式)
{
代码块;
}
功能:首先判断表达式,
如果表达式为真,那么就运行代码块;
如果表达式为假,那么就结束循环;
do…while循环
do{
代码块;
}while(表达式)
功能:首先执行一次代码块;
然后判断表达式,
如果表达式为真,那么就运行代码块;
如果表达式为假,那么就结束循环;
两个数值的交换
int a = 6,b = 9;
1.设置中间变量
int c = a;
a = b;
b = c;
2.运算法
a = a + b;
b = a - b;
a = a - b;
3.异或
a ^= b;
b ^= a;
a ^= b;
循环语句的辅助关键字
break:结束本层循环
continue:结束本次循环
return:结束所在的函数
goto语句:(不可以跨函数)
eg: int a++;
标题;
a++;
goto 标题;
数组
数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素
数组中各元素的数据类型要求相同,用数组名和下标确定。数组可以是一维的,也可以是多维的。
1.数组定义
<数据类型><数组名/标识符>[数组元素个数]:
Auto int arr[6]
2.数组的初始化
完全初始化:int[4]={1,2,3,4};
int[6]={0};//给数组的所有元素赋初值为0
部分初始化:int[10]={2,5,3,4};
int[]={2,7,4,6,7};
3. 数组的赋值(只能一个元素一个的赋值)
4.数组的元素访问
数组名[下标];
arr[2] = 10;
printf(“%d\n”,arr[2]);
数组遍历
遍历:把数组的所有元素都访问一遍;
int arr[6];
for(int i = 0;i<6;i++)
printf("%d",arr[i]);
数组的越界
在定义数组时,计算机会预留一部分空间;
主要就是防止编译编不过