一、函数
1.函数体构造
int Add(int x,int y)
{
int z = x+y;
return z;
}
大括号里叫做函数体,是完成给定任务的;Add叫做函数名;括号内叫函数的参数。
使用函数完成求和运算:
Add(int x, int y)
{
int z = x + y;
return z;
}
int main()
{
int sum = 0;
int a = 100;
int b = 200;
//sum = a+b;
sum = Add(a, b);
printf("sum = %d\n", sum);
return 0;
}
运行结果:
函数的特点:简化代码,代码复用。
二、数组
1.数组是什么?
数组是一组相同类型元素的集合。
2.如何定义一个数组?
int arr[10];
//定义一个存放10个整数数字的数组
每个元素都有一个下标,可以使用下标的方式访问元素
printf("%d\n",arr[4]);
//访问下表为4的元素
3.如何给数组赋值?
int arr[3]={1,2,3};
//使用大括号赋值
三、运算符
1.算数运算符
+ - * / %
//加、减、乘、除、取余数
2.移位操作符
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。
丢弃最高位,0取最低位。
>> <<
例:
int i=1;i=i<<2; //这表示将i里的值左移两位
32位机器中1的2进制是00000000000000000000000000000001,左移两位变为0000000000000000000000000000100,也就是十进制中的4。
3.位操作符
&//按位与
|//按位或
^//按位异或
~//按位非
注*:是对二进制的位操作
按位与&
其中a的二进制为011,b的二进制为101,按照位进行与操作。01为0,10为0,11为1,所以为001即1。(按位或同理)
其中按位异或:
异或:同0异1。
4.赋值操作符
=和==
=//赋值
==//判断相等
+=和-=
a = 20;
a = a+10;
a += 10;
//他们等价
a = a-20;
a -= 20;
//翻译一下
//a减20 = a减的那个数是20
//赋值运算大家族
=
+=
-+
*=
/=
%=
&=
|=
^=
>>=
<<=
5.单目操作符
单目操作符是什么意思?
有一个操作数的符号(如-1、+2),还有双目操作符(如a+b),三目操作符…
sizeof()函数
sizeof计算的是一个变量/类型所占空间的大小,单位是字节。
使用sizeof计算元素个数:
sz = sizeof(arr)/sizeof(arr[0]);
//个数 = 数组的总大小/每个元素的大小
//后面的sizeof(arr[0])不一定是0元素,随便都行
变量/类型所占空间大小都可使用sizeof来计算:
printf("%d\n",sizeof(a));
printf("%d\n",sizeof a);
printf("%d\n",sizeof(int));
//但是类型名不能去掉括号使用sizeof函数
++和- -
++和- -都表示在自身原来的基础上+1或者-1,但是具体怎么使用呢?
++区分前置++和后置++(- -同理)
前置++例:
int main()
{
int a = 10;
int b = ++a;
printf("a = %d b = %d\n",a,b);
return 0;
}
运行结果:
后置++例:
int main()
{
int a = 10;
int b = a++;
printf("a = %d b = %d\n",a,b);
return 0;
}
运行结果:
前置++:先使用a的值,哪里使用了呢?int b = a++,所以a先给b,然后a自己再自加1。
后置++:int b =a++,a先自加1赋值给b,然后此时a也变成了a+1。
(- -同理)
强制类型转换
格式——(类型)
使int a = 小数,会丢失数据失去精度,如果非要让他变成某类型,就强制转换一下。
6.赋值操作符
7.逻辑操作符
逻辑与例:
int main()
{
int a = 2;
int b = 3;
int c = a && b;
printf("c = %d\n",c);
return 0;
}
//输出结果为1真假(0为假,其他是真)
运行结果:
只要这个数不是0那么他就是真
逻辑或同理,一真为真(逻辑或||)
8.条件操作符
含义:表达式一为真,表达式二为整个表达式的值,表达式一为假,表达式三为整个表达式的值。
逗号可以隔开一串表达式
9.其他一些操作符
[]下标引用操作符
含义:引用序号为4的数组里的元素
()函数调用操作符
补充*:
这些操作符目前还没有学到=w=,以后会添加讲解。