前言:

小伙伴们大家好吖!一起跟随着菜菜酱的步伐继续开始c语言修炼之旅吧!在前面一章我们修炼到了注释。现在让我们一起来回忆一下注释的相关用法吧!注释是用来干嘛的,注释有两个用法:第‘一个用来解释代码,第二个则是注释掉不需要的代码。废话不多说一起开始今天的学习!

选择语句

选择语句也被称为分支语句。那么选择语句都有哪些呢?选择语句包括:if语句,switch语句。在初识这一章我们认识即可在后面的学习中会详细讲述!!!在这一章我们先来看看if语句的用法吧!if语句可以实现单分支,实现双分支还可以实现多分支,在单分支是用一个If即可,双分支则是用if else。多分支则是在双分支的基础之上,使用 if else if else if else.直接上代码看看效果吧

#includeint main(){int a = 3;int b = 5;if (a < b)printf("hehe\n");return 0;}

上面的代码就是使用if单分支,若if括号里的表达式为真则执行语句,若为假则不执行!

#includeint main(){int a = 8;int b = 6;if (a < b){printf("hehe\n");}else{printf("haha\n");}return 0;}

这个代码是If实现多分支的情况。以上面的代码为例,若a<b为真则打印hehe.否则打印haha

#includeint main(){int age = 0;scanf("%d", &age);if (age = 18 && age = 30 && age < 50){printf("壮年\n");}else{printf("老年\n");}return 0;}

上面的代码是if实现多分支的情况,在这里我们先认识一下就好。

switch语句也是在后面的学习中会讲,这里只要记住分支语句有if语句和switch语句!!!

循环语句

循环语句有哪些呢?有while语句,for语句,do while语句。在这里我们简单的就介绍一下while语句至于for和do while 语句后期学习在介绍啦(这可不是菜菜酱偷懒呢)

while语句的语法形式和if语句的形式有些相似,但不同的是If语句是执行一次,while语句执行多次

while(表达式){ //执行语句;}//当while中的表达式为真,就执行语句。为假则跳出循环

这样子看还是太抽象了,一起来看看个代码吧

#includeint main(){int i = 0;while (i < 5)//i当i<5为真,进入循环执行语句.当i==5时i<5为假跳出循环{printf("hehe\n");i++;}return 0;}

我们再来一起看看它的执行顺序吧在整个程序中,i<5始终为判断条件,i++调整条件。当i==5时直接跳出程序!!

此时ctrl+f5运行结果为在屏幕上打印了五个hehe。这里关于while的认识就到这里了哦,还是那句话,后期会详细的学习!

函数

可以独立实现代码功能,在初识阶段浅浅的认识一下吧。写一个加法功能的函数吧上代码!

#includeint Add(int x, int y){return x + y;}int main(){int a = 0;int b = 0;scanf("%d %d", &a, &b);int c = Add(a, b);printf("%d ", c);return 0;}

浅浅地分析一下吧!

先调用函数才可以进行使用,以上面的代码为例:int c=Add(a,b)进行调用函数Add,其中函数中的两个参数称之为实际参数简称为实参。在函数中也有两个参数称之为形参。实参和形参对名称可以相同也可以不同。Add是函数名,int是函数的返回类型,与返回的值的类型相一致。当这个函数没有要返回的值时,函数的返回类型可以写成void。总结一下,一个合格的函数需要函数名,返回类型·,参数。关于函数就介绍到这啦

数组

数组的含义:一组相同类型元素的集合。那么数组是怎么创建呢?换句话说,数组的创建需要哪些条件呢?来个代码来分析叭

int arr[5];

这个数组每个元素的类型为int型,arr是数组名,[ ]下标调用符(后面操作符会介绍噢),[5]表示这个数组有5个元素。数组的基本组成我们基本已经了解了,怎么进行初始化呢?上代码!

#includeint main(){int arr[5] = { 0 };//不完全初始化int i = 0;for (i = 0; i < 5; i++){printf("%d ", arr[i]);}return 0;}

上面代码中,数组的初始化为int arr[5]={0}表示数组里有五个元素,每个元素的值为0(悄悄说一下这种初始化为不完全初始化)。我们一起运行代码来看看吧!

打印结果果然和我们之前分析的一样,全是0。接下来我们一起看看数组的完全初始化吧!依旧是上代码!

#includeint main(){int arr[5] = { 1,2,3,4,5 };//完全初始化int i = 0;for (i = 0; i < 5; i++){printf("%d ", arr[i]);}return 0;}

这貌似和不完全初始化没有太多区别!再来看看运行结果吧

以上呢就是数组的两种初始化方式!接下来我们介绍硬货—数组下标!

数组下标可是很讲原则的哦,它说从0开始咱就得遵守,从1从2开始都是错误的。以下面的代码为例,看看有没有发现规律

int arr[10]={1,2,3,4,5,6,7,8,9,0}// 0 1 2 3 4 5 6 7 8 9 

噢~发现了从0开始并且会一次向后递增,每个元素都有其下标!!

以上就是数组的介绍噢,更多详细内容在后面的学习中会介绍噢!

操作符

提起操作符我们应该不陌生,操作符都包括哪些内容呢?包括:算数操作符,位移操作符,赋值操作符,关系操作符,单目操作符,逗号表达式,下标引用[ ]函数调用()结构体成员. ->

接下来让我们一一介绍吧!酱酱们

算术操作符:+ – * / %

+ – *我们都很熟悉,在这里我们着重介绍/ 和%。先从/开始,除法分为整数除法和小数除法,当除号两端都是整数时将会执行整数除法:当/有一端或两端有小数时此时将会执行小数除法。来个例子看看吧

#includeint main(){printf("%d\n", 7 / 2);printf("%lf\n", 7.0 / 2);return 0;}

这里用的例子是很简单的7除以2,按照我们之前的来说,7除以2的结果不就是3.5嘛结果会有什么不同嘛?我们一起来ctrl+f5运行一下代码吧!

哦豁结果不一样欸,这是为什么呢?还是我们之前说,除号两端都是整数执行整数除法结果保留商。除号两端有一端是小数执行小数除法!

再接下来介绍%,取模操作符也称为取余操作符

#includeint main(){int a = 7;int b = 2;int c = a % b;printf("%d ", c);return 0;}

来看看运行结果吧!

哦豁结果等于1欸,说明%取的是它们之间的余数!还有一个点需要注意:%取模操作符的两端必须是整数,不可以是小数。当两端是小数时程序会报错!上代码!

运行结果告诉我们%两端必须是整数!最后关于算数操作符还有一个点要注意:在编程中表示乘号用*而不是像数学一样。其次就是注意%的写法

位移操作符

>>右移操作符 <<左移操作符 这里注意的点在于它们移的都是二进制位

这里认识一下即可!

赋值操作符

+= ,-=,/=,%= ,<>=,&=,^=,|=

它们的使用也更简单,上代码!

#includeint main(){int c = 0;c =c+3;//也可以改为c+=3;printf("%d\n",c);return 0;}//c+=3-->c=c+3;//同理可得//c-=3-->c=c-3//c/=3-->c=c/3

后面的赋值操作符也可以这样同理可得噢!

关系操作符

> ,= , <= , != , ==

第一个注意的点是大于等于和小于等于的写法,这和我们数学中的写法不同噢。酱酱们在写时不搞混了。第二个点于!=,这个表达是用来测试不相等的,还是用代码来说话

#includeint main(){int a = 4;int b = 7;if (a != b){printf("haha\n");}return 0;}

这里if语句表达的意思是,要是a不等与b为真则打印haha

第三个点是==,在编程中表示相等是用两个等号,而在数学中表示相等使用一个等号。酱酱们别搞混了噢!因为在编程中一个等号表示赋值例如:a=20;的意思是把20赋给a!以上就是关系操作符的注意点!

单目操作符

!逻辑反操作符 ,sizeof计算操作数的长度(所占空间大小,单位为字节),+正值,-负值,~按位取反,–前置后置,++前置后置,*解引用操作符,(类型)强制类型转换,&取地址操作符

在开始介绍之前我们先来了解一下什么叫单目操作符,双目操作符。以a+b为例,+有俩个操作数所以+称之为双目操作符。在以i++为例,++只有一个操作数,故而称之为单目操作符。那么再来总结一下,有两个操作数的称为双目操作符;只有一个操作数的称之为单目操作数。

!逻辑反操作符,使真变假,假变真(在c语言中,0为假,非0为真)直接上代码来看看!的具体操作吧

#includeint main(){int a = 3;if (a)//a为真,进入If语句执行程序{printf("haha\n");}if (!a)//!a为假,不会执行程序{printf("hehe\n");}return 0;}//最终的打印结果为haha

sizeof是单目操作符也是关键字,用来计算类型或变量所占空间大小,单位为字节!sizeof有三种写法。

#includeint main(){int a = 10;printf("%d\n", sizeof(a));printf("%d\n", sizeof(int));printf("%d\n", sizeof a);//因为sizeof不是函数,所以后面的括号可以省略return 0;}

~按位取反操作符,这里的位是二进制位。目前认识即可

–前置后置,前置–先减减再使用,后置–先使用再减减。上代码看看效果吧

#includeint main() {int b = 3;int a = 3;int c = 0;int d= 0;d = b--;//相当于d=b=3,b=b-1;c = --a;//相当于a=a-1,c=a=2printf("%d\n", d);printf("%d\n", c);return 0;}

是不是很简单吖,++前置后置也是同样的道理噢

*解引用·操作符和&取地址操作符要等到后期学呢

(类型)强制类型转换,这个操作符比较霸道可以把一个类型转化为另一个类型!

#includeint main(){printf("%d",(int)3.14);return 0;}

此时就将3.14转化为Int型!单目介绍完毕!

条件操作符:exp1″ />#includeint main(){int a = 0;int b = 0;int c = 0;scanf(“%d %d”, &a, &b);//条件表达式的两种写法a > b ? (c = a) : (c = b);c =(a > b ? a : b);//在写条件表达式,通常采用第二种写法printf(“%d”, c);return 0;}

逗号表达式:(exp1,exp2……..expn)

逗号表达式的特点:每个表达式用逗号隔开,从左到右依次计算,逗号表达式子的结果是最后一个表达式的结果!

上代码

#includeint main(){int a = 3;int b = 4;int c = 5;int d = (a = a + c,--b, c = c + b);//a=8 ,b=3, d=c=3+5 //逗号表达式的结果为最后一个式子的结果,故而d的值等于c的值printf("a=%d ", a);printf("b=%d ", b);printf("c=%d ", c);printf("d=%d ", d);return 0;}

运行结果也是我们算的!一模一样欸!!!

下标引用[ ],函数调用( ),结构体成员. ->

下标引用操作符我们在介绍数组的时候就已经见过了!函数调用操作符(),当我们使用函数的时候函数名后面一定要跟上一个括号不然代码会报错!!!结构体成员操作符会留到后面进行讲解!!


以上就是今天的内容,还剩下关键字,初识结构体以及初识指针就会在下一篇文章中讲解!