接上篇文章 C语言---进阶1
目录
一、break,continue
二、do-while语句 goto语句
三、局部变量 全局变量
1.局部变量
2.全局变量
四、预处理
五、补充
一、break,continue
1.都可用于循环体中(switch while for),立即结束当前循环
2.break直接跳出循环
3.continue跳出当前循环
#includeint 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>先执行循环体 再判断是否满足条件
#includeint main() { int i = 0; do{ printf("这句话已经执行了"); }while(i !=0 ); return 0; }
代码执行结果 : 这句话已经执行了
2.goto语句:
<1>是一个跳转语句,不常用 但是也能达到理想的结果
<2> 先要为想要跳转到的地方做一个标记,为这个地方取一个标签名
<3>自定义标签名要符合命名规则和规范
#includeint 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类型,默认值就是‘ ’,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)
#includeint mian() { int num = 11224; if((num&1) == 0) { printf("num 是一个偶数"); }else { printf("num 不是一个偶数"); } }
因为偶数的二进制最低位一定是0,奇数一定是1
2.不借助外部变量如何实现两个数之间的交换
#includeint 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;



