C语言学习笔记(中)

引言

        本章笔记将接着C语言学习笔记(上)-CSDN博客的进度向下制作笔记,如出现错误,还望广大朋友们批评指正。

一、分支控制语句的总结

        C语言学习笔记(上)-CSDN博客文末中,介绍了if..else语句和switch...case语句的代码编写格式,本小节将总结两个代码的用法。

        if...else语句中,if、else if后面接的表达式,表示程序走到这里需要判断,条件是否满足。

当是下面的这类型时,表达式判断为真时程序执行代码1,否则将执行代码2

if(表达式){

        代码1;

}else{

        代码2;

}

         当是下面这种形式,先判断表达式1是否为真,为真后执行代码1,为假则判断表达式2时候为真,当表达式2为真时,执行代码2,否则执行其它代码

if(表达式1){

        代码1;

}else if(表达式2){

        代码2;

}else{

        其它代码;

}

        当出现下面的嵌套形式时,程序先判断表达式1的真假。

        当表达式1为真时,程序执行表达式1所对应的代码块,即下一步判断表达式2是否为真,当表达式2为真时执行代码1否则指向其它代码2。

        当表达式1为假时,程序执行else if语句,判断表达式3是否为真 ,当表达式3为真,执行表达式3的代码块,进一步判断表达式4是否为真,当表达式4为真,执行代码3,否则执行代码4

        当表达式3也为假,则执行其它代码3  

if(表达式1){
        if(表达式2){
                代码1

        }else{
                其他代码2

        }

}else if(表达式3){
        if(表达式4){
                代码3

        }else{
                代码4

        }

}else{

        其他代码3

}

        switch...case语句,当出现这个分支判断语句是,先判断表达式中的结果,与case中对应的常量表达式哪一个对应,则执行相应的代码块,否则执行默认语句default。

        执行完相应的代码块,采用break跳出分支控制语句。

switch(表达式){
        case 常量表达式1:

                代码块1;

                 break;

         case 常量表达式2:

                代码块2;

                break;

        case 常量表达式n:

                 代码块n;

                 break;

        default:

                 其他分支;

                  break;

}

 二、循环控制语句

        1.使用goto语句实现循环

                格式:goto + 标签名(注意标签名也要符合标识符的命名规范)

                代码执行到goto时,直接执行NEXT执行代码2,将代码1跳过,使用goto实现循环,则将定义的标签名放到goto之前。

         goto NEXT;

          代码1;

NEXT:

          代码2; 

 2.while循环:

        while循环,先执行表达式,如果表达式为真,则执行代码块,然后在执行表达式,如果还是真的,则执行代码块,知道表达式的判断为假,循环结束。

while(表达式){

        代码块;

}

 3.do...while循环

        do...while循环,先执行代码块,然后执行表达式,如果表达式为真,则继续执行代码块,然后再执行表达式,如果还为真,则继续执行代码块,直到表达式为假,循环立即结束。

do{

        代码块;

}while(表达式);

        do...while 和 while的区别是while先判断后执行,do...while先执行一次后判断

 4.for循环

        先执行表达式1,在对表达式2进行判断,如果表达式2为真,则执行代码块,然后在执行一次表达式3,在返回判断表达式2是否为真,为真则继续执行代码块和表达式3,直到表达式2为假的时候,跳出循环立即结束。

for(表达式1;表达式2;表达式3){

        代码块;

}

5.死循环

        就是条件始终为真,循环体一支在执行程序。例如:

while(1){

        循环体;

}

 三、辅助控制关键字

1.break

        用于执行完成每一个分支后,跳出语句,立即结束。

        用于循环中,表示立即结束本层循环

2.continue

        该关键字只能用于循环中,作用是结束本层的本次循环

3.return

        在函数中表示返回函数执行结果,用于整个程序中,表示立即结束程序

四、数组

        数组的作用是用来保存一组相同数据类型的数据的,数组中的每个数据叫做元素,从内存上考虑使用数组需要分配一块连续的空间来存储数据。

1.一维数组

        一维数组就是下标只有一个的数组

        格式:存储类型 数据类型 数组名[下标];

                存储类型:一般不写都默认auto(自动存储类型),除此之外还有,register(寄存器存储类型)、const(常量存储类型)、static(静态存储类型)、extern(外部存储类型)、volatile(易变存储类型)

                数据类型:指数组中每个元素的数据类型

                数组名:采用标识符的命名的规范

                下标:用来表示数组的元素的个数

                注意:下标是从0开始的

2.二维数组

        二维数组就是下标有两个的数组

        格式:存储类型 数据类型 数组名[行数][列数]

       存储类型、数据类型、数组名和一维数组的相同,从存储的角度来看所有的元素都是连续的,存储方式如同下图所示。

3.数组的初始化

        一维数组的初始化:int s[5],数组里存储的数据是随机值

                                         int s[5] = {10,20,30,40,50}此时数组被完全初始化

                                        int s[5] = {0}数组全部初始化为0

                                        int s[] = {1,2,3},当省略[]中的下标,编译器自动计算数组的长度

        二维数组的初始化:int s[3][4] ,数组里存储的数据是随机值

                                        int s[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}此时数组被完全初始化

                                        int s[3][4] = {{1,2},{3,4},{5,6}},此时数组不完全初始化,没有初始化的位用0初始化

五、字符串处理函数

        strlen:计算字符串的长度,不包含'\0'的,

        strcpy:字符串的复制,采用该函数时需要注意目标字符串的长度要足够大       

        strcat:字符串的拼接,采用该函数时需要注意目标字符串的长度要足够大

        strcmp:字符串的比较,采用该函数的时候将两个字符串的每一个字符对应的ASCII码,出现大小关系后,就会立即返回

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

译泽在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值