接上篇文章 C语言---进阶1
目录
一、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.预处理分类
文件包含指令 | #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;