C语言笔记06_初识函数 数组 操作符
# **C语言笔记06_初识函数 数组 操作符**> **这只是一篇新手个人学习笔记,其中不可避免出现理解不深不透,仅以督促自身及记录,如有错误,望批评指正!**
---
### **函数**
****示例****
```
#include <stdio.h>
int main()
{
? ?int num1 = 0;
? int num2 = 0;
? ?int sum = 0;
? ?printf("输入两个操作数:>");
? ?scanf("%d %d", &num1, &num2);
? ?sum = num1 + num2;
? ?printf("sum = %d\n", sum);
? ?return 0;
}
```
****上述代码写成函数形式如下****
```
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int Add(int x, int y) //定义一个整形 num1传给x 2传给y
{
int z = 0;
z = x + y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
int sum = Add(num1,num2);
printf("%d", sum);
return 0;
}
```

> **函数的特点就是简化代码,代码复用。**
#### **数组**
> **一种相同类型的元素的集合**
```
int arr = {1,2,3,4,5,6,7,8,9, 10};//定义一个整形数组,最多放10个元素
```
**代码示例**
**这里F10调试单步往下后 查看监视器可得**
!(https://gitee.com/Luuxcyzz/my-image-host/raw/master/image-20220210214111231.png)
#### **打印数组**
****C语言规定:数组的每个元素都有一个下标,下标是从0开始的。******
******数组可以通过下标来访问的。****
```
int main()
{
int arr = { 1,2,3,4,5,6,7,8,9,10};
char ch = { 'a','b','c' };//不完全初始化,剩下的会默认为0
//数组使用下标来访问
int i = 0;
while (i <10)
{
printf("%d", arr);
i++;
}
return 0;
}
```
!(https://gitee.com/Luuxcyzz/my-image-host/raw/master/image-20220211140325022.png)
### **操作符**
##### **算术操作符**
> +** - * / %**
###### **移位操作符**
>> **> <<**
>>
###### **位操作符**
> **& ^ |**
##### **赋值操作符**
> **= += -= *= /= &= ^=|= >>=<<=**
##### **单目操作符**
```
! ? ? ? ? ? 逻辑反操作
- ? ? ? ? ? 负值
+ ? ? ? ? ? 正值
& ? ? ? ? ? 取地址
sizeof ? ? ?操作数的类型长度(以字节为单位)
~ ? ? ? ? ? 对一个数的二进制按位取反 ? //按(二进制)位取法把所有二进制位中数字,1变成0,0变成1
-- ? ? ? ? ?前置、后置--
++ ? ? ? ? ?前置、后置++
* ? ? ? ? ? 间接访问操作符(解引用操作符)(
类型) ? ? ? 强制类型转换
```
**整数在内存中存储的补码****
****整数的二进制表示有3种:****
****原码 反码 补码**
**以-1为举例(针对负数)**
**10000000000000000000000000000001(原码)最高位为1表示是-1**
**11111111111111111111111111111110(反码)第一位符号位不变**
**11111111111111111111111111111111(补码)第一位符号位不变**
**整数的原码 反码 补码都相同**
---
****原码****** ****符号位不变,其他位按位取反**
**↓↓↓↓**
****反码****** ****反码+1**
**↓↓↓↓**
****补码****
##### **关系操作符**
```
>
>=
<
<=
!= ? 用于测试“不相等”
== ? ? ?用于测试“相等”
```
##### **逻辑操作符**
```
&& ? ? 逻辑与
|| ? ? 逻辑或
```
##### **条件操作符**
```
exp1 ? exp2 : exp3
```
##### **逗号表达式**
```
exp1, exp2, exp3, …expN
```
##### **下标引用、函数调用和结构成员**
```
[] () . ->
```
哈哈哈,楼主写的代码我都能看得懂。
有个细节补充一下,对于字符数组的初始化:
char ch[]="abc00"
char ch = { 'a','b','c','0','0' }
它们长度是不一样的。
还有一种比较方便的写法
char* ch="abc00" 感谢大佬的分享 谢谢分享 谢谢分享 谢谢分享 谢谢分享 学习永不停歇 前来向大佬学习 谢谢分享 谢谢分享