所属专栏:C语言
博主首页:初阳785
代码托管:chuyang785>
感谢大家的支持,您的点赞和关注是对我最大的支持!!!
博主也会更加的努力,创作出更优质的博文!!
关注我,关注我,关注我,重要的事情说三遍!!!!!!!!
1.函数
我们先写一个函数来分析一下:
#include <stdio.h>
int Add(int x, int y)//函数的主体
{
int z = x+y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = Add(num1, num2);//定义一个Add函数
printf("sum = %d\n", sum);
return 0;
}
我们知道上面是一个求和的一个函数。
首先我们定义了两个变量num1和num2他们的数据类型都是int整形的,我们还定义了另一个变量sum,并且后面我们对sum赋值 sum = Add(num1, num2)赋的是一个函数。
我们的函数语法是:函数名(参数),Add就是函数名,num1和num2是参数,参数可以是多个的。我们传过去的参数的类型是int,所以我们的接受参数的类型也要是int类型的所以写成(int x,int y)我们的接受参数的名字是自己取的。
既然我们要在函数里面实现我们两个数的相加,那我们相加得到的数据要返回给我们的主函数,也就是return z,而我们返回去值也是int类型的所以Add函数的返回类型也是int,因此Add函数前面有个返回类型int。
有人就会说了我们明明可以直接在主函数里面实现为什么要用函数呢?
#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;
}
这我想说的是如果我们的函数计算式很复杂,并且如果我们要计算的不止一个的话,一旦我们一一在主函数里面实现的我们呢就要一一的实现,这样不但会增加我们的代码量,还又可能会出错,但是如果我们使用函数,这个函数就像是一个模板一样计算方法是一样的就是计算数据不要样,我们要使用的时候就引用函数,这样我们的代码就简介许多还不容易出错。
2.数组
假如我们要统计一个班学生的年纪,而年纪是int形的,那我们可能就会定义n个int形的变量用来存放数据:
int a=18;
int b=19;
int c=17;
……
这个样的就显得分非常的麻烦,这个时候我们就引用了数组的概念。
C语言中给了数组的定义:存储一组相同类型元素的集合。
2.1数组的定义
数组的语法形式:
类型 数组名[数组大小]={初始值};
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
2.2数组的小标
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问的。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
//如果数组10个元素,下标的范围是0-9
int arr[10] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10};
下标 0 1 2 3 4 5 6 7 8 9
2.2数组的使用
我们知道了我们可以通过数组下标找到我们想要的值,我们就来实现一下。
我们也可以从监视窗口上看到
3.操作符
1.算数操作符
+ - * / %
这个就不用多说,就是我们的加减乘除,主要讲一下%,这个是取模操作符,就是整除取余数。
注意:我们的%从操作符必须是两个整数
即:整形类型%整形类型
我们的 / (除)如果是:整形类型/整形类型,我们得到的是一个整形类型的。
例如:1/2=0,虽然我们常识1/2=0.5,但是计算机不是这么认为的,我们的0.5是浮点型的(小数)
如果你想得到0.5,那我们的除数和被除数至少有一个是浮点型(小数)
例如:1/2.0或者1.0/2或者1.0/2.0都会得到0.5。
2.移位操作符
>> <<
3.位操作符
& ^ |
上面的两类位移操作符操作的是二进制位,后面我们会详细讲。
4.赋值操作符
= += -= *= /= &= ^= |= >>= <<=
我们说过了一个=是赋值操作,两个==是判断语句,这点一定要记清楚。
而后面的+和=结合以及后面的也可以叫做是复合操作符。
例如:i=i+1;就会等价于i+=1;
后面的一系列也是如此的。
5.单目操作符
所谓单目操作符就是只跟一个数值。
例如我们的-:-2我们的2就是一个数值,也就是说-的前面不能在跟数值了,一位它已经有一个数值2了。
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
6.关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
我们写一个代码来实现一下:
#include <stdio.h>
int main()
{
int a=0;
scanf("%d",&a);
if(a==0)
printf("a的值位0");
else if(a>10)
printf("a的值小于10");
else if(a>=10)
printf("a的值大于等于10");
else if(a!=100)
printf("a的值不等于100);
return 0;
}
这里就是(!=)是不等于的意思,要注意的是我们的这些关系操作符是连在一起的是不能断开的,不能是在!=直接间插入一个空格,这样是不可以的。
7.逻辑操作符
&& 逻辑与
|| 逻辑或
逻辑与就是我们所说的与/和,就是要同时满足才为真,有一个是假那就是假。
逻辑或就是我们所说的或者,只要满足一个为真那就是真。
#include <stdio.h>
int main()
{
int a=0;
scanf("%d",&a);
if(a>0&&a<10)
printf("hehe");
if(a<0||a>10)
printf("haha");
return 0;
}
8.条件操作符
exp1 ? exp2 : exp3
exp是表达式。
这个意思就是如果表达式1为真则执行表达式2,否则就执行表示是2。
这个操作符也叫三木操作符,C语言中唯一的一个三目操作符。
我们写一个程序试一试
#include<stdio.h>
int main()
{
int a=0;
int b=0;
scanf("%d %d",&a,&b);
if(a>b)
printf("%d",a);
else
printf("%d",b);
//上面的其实等同于
int x=a>b?a:b;
printf("%d",x);
return 0;
}
9.逗号表达式
exp1,exp2,exp3……expN
所谓逗号表达式就是多个用逗号隔开的表达式,这个逗号表达式会从左向右依次计算,逗号表达式的最后结果是最后一个表达式的值。
#include<stdio.h>
int main()
{
int a=1;
int b=2;
int c=0;
int d=(a+=1;b+=1;c=a+b);
printf("%d",d);
//这个打印的值是5
return 0;
}
可以看出我们先计算了a+=1得到a的值是2,在计算b+=1得到b的值是3,自己三c=a+b==2+3=5。
10.下标引用,函数调用和结构体成员
[] () . ->
我们的下标引用操作符[ ]就是我们使用数组的时候定义数组大小的时候所用到的。
int arr[10]={0};
我们的小括号(),函数调用的时候用到。
printf("hehe");//printf是一个打印函数.
int main();//我们的主函数;等等。