C语言---进阶2

接上篇文章  C语言---进阶1


目录

 一、break,continue

 二、do-while语句    goto语句

 三、局部变量  全局变量

        1.局部变量

        2.全局变量

四、预处理

五、补充


 一、break,continue

        1.都可用于循环体中(switch while for),立即结束当前循环

        2.break直接跳出循环

        3.continue跳出当前循环

#include<stdio.h>
int main()
{
    for(int i = 0;i < 10;i++)
    {
        if(i==5)
        {
            break;
        }
        printf("%3d",i);
    }
    for(int j = 0;j < 10;j++)
    {
        if(j==5)
        {
            continue;
        }
        printf("%3d",i);
    }
    return 0;
}

        两句代码执行结果分别为  1  2  3  4

                                                  1  2  3  4  6  7  8  9


 

 二、do-while语句    goto语句

        1.do-while语句:

                <1>语法:do{

                                循环体;

                                }while(循环条件);

                <2>先执行循环体  再判断是否满足条件

#include<stdio.h>
int main()
{
    int i = 0;
    do{
       printf("这句话已经执行了");
    }while(i !=0 );
    return 0;
}

代码执行结果 : 这句话已经执行了

         2.goto语句:

                <1>是一个跳转语句,不常用  但是也能达到理想的结果

                <2> 先要为想要跳转到的地方做一个标记,为这个地方取一个标签名

                <3>自定义标签名要符合命名规则和规范

#include<stdio.h>
int main()
{
    loop:
    printf("输入一个用户名:\n");
    char Name[20];
    char PassWord[20];
    gets(Name);
    printf("输入密码:\n");
    gets(PassWord);
    printf("输入完成\n"); 
    if(Name != "CSDN" && PassWord != "112233")
        goto loop;
    return 0;
}

使用场景:多用于输入密码操作(也可以通过函数来实现)

goto语句只能在当前函数中往前跳或往后跳,取标签名的下面的第一句代码不能是声明变量的语句

特别容易造成 死循环  不建议使用


 

 三、局部变量  全局变量

        1.局部变量

                <1>定义在函数内部

                <2>若局部变量未赋值,则局部变量是一个垃圾值

                <3>局部变量的作用域是从创建开始  到一个 {  } 代码块结束

        2.全局变量

                <1>定义在函数外部

                <2>若全局变量未赋值,则全局变量的默认值就是0,

                      若全局变量是一个char类型,默认值就是‘\0’,ASCII码值也是0;

                <3>全局变量的作用域是从创建开始  到程序结束


 

四、预处理

        1.C语言中代码分为两类

                <1>C代码:代码块

                <2>预处理代码:以#开头的代码

        2.手写一个C程序的流程

        .C源文件---执行 .C预处理代码---检查语法---编译成.O目标文件---链接生成可执行文件---执行

        3.预处理分类

      

C语言预处理分类
文件包含指令#include
宏定义#define
条件编译指令#if

         预处理代码是在编译、检查语法之前执行

        4.相对路径---绝对路径

                <1>相对路径:当前这个文件夹的路径,和当前文件路径相同的部分删除

                <2>绝对路径:路径是从根目录开始一直到文件目录

        5.<>  和  ""的区别

                <1>  "<>" :只去编译器根目录中查找,若没有,则报错

                <2>  " "" ":先去当前源文件所在的目录中查找文件,若有则包含,

                                  若没有则去编译器根目录中查找


 

五、补充

        1.如何快速判断一个数是不是偶数

                        if( ( num & 1 ) == 0)

#include <stdio.h>
int mian()
{
    int num = 11224;
    if((num&1) == 0)
    {
        printf("num 是一个偶数");
    }else
    {
        printf("num 不是一个偶数");
    }

}

            因为偶数的二进制最低位一定是0,奇数一定是1

        2.不借助外部变量如何实现两个数之间的交换

#include <stdio.h>
int main()
{
    int num1 = 10;
    int num2 = 20;
    
    num1 = num1 ^ num2;
    num2 = num1 ^ num2;
    num1 = num1 ^ num2;

    printf("num1 = %d,num2 = %d",num1,num2);
}

              输出结果是:num1  = 20,num2 = 10; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值