C语言函数、数组(部分)及超级多的运算符【挑战200天PAT甲级(3)】2021-07-06

一、函数

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=,以后会添加讲解。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值