C语言从零开始:勇者入门完全指南!(๑•̀ㅂ•́)و✧
C语言从零开始勇者入门完全指南(๑•̀ㅂ•́)و✧第零章世界的问候与基石“你好世界”——传奇的开始每一个勇者的故事都从一句问候开始。在C语言的世界里这行代码就是你的“冒险者登记”#includestdio.h// 从“标准装备库”领取“输入输出”神器intmain(){// 主函数你冒险的起点printf(你好世界\n);// 向世界发出你的呐喊return0;// 优雅地结束这次冒险返回“胜利”的信号}核心概念#include stdio.h就像#include是打开宝库的钥匙stdio.h这个宝库里放着printf、scanf等必备工具。没有它你连话都说不了int main()主角的登场程序执行从这里开始。int表示他最终会带回一个整数结果。printf你的“传声筒”负责在屏幕控制台上输出信息。\n转义字符之一代表“换行”让你的输出更整洁。它的伙伴还有\t制表符相当于按一下Tab键。\\表示一个真正的反斜杠\。\表示一个真正的双引号。二进制——世界本源的语言计算机只懂0和1。所有数据你的血量、攻击力、华丽的魔法特效在底层都是二进制。学习C语言就是学习如何用人类可读的代码指挥这些0和1去战斗第一章打造你的专属装备——数据类型与变量1.1 基本数据类型你的基础装备栏你的角色属性需要不同类型的“容器”来承载装备类型占位符说明大小常见动漫比喻整数类型%dint最常用的整数4字节基础生命值、攻击力%hdshort短整数2字节次要属性如暴击率%ldlong长整数4/8字节经验值、金币总量浮点类型%ffloat单精度浮点4字节精确到小数的属性如移动速度5.5%lfdouble双精度浮点8字节需要高精度的属性如魔法强度12.34567字符类型%cchar单个字符1字节角色的一个技能按键、一个字母%schar[]字符串可变角色的名字、一行对话重要更正与补充%c对应的是char单个字符例如A,!,\n。它用单引号。字符串是多个char组成的数组用%s输出例如Hello。它用双引号。特殊装备强化unsigned无符号给整数装备如unsigned int加上让它不能为负从而拥有两倍的正数容量适合表示血量、物品数量。const恒定一件装备一旦被const修饰就绑定为“灵魂绑定”初始化后永远无法改变用于定义魔法常数、游戏版本号。1.2 变量——你的属性自定义变量声明与赋值创造并武装一个属性inthp;// 声明一个叫“hp”的整数容器现在是空的值是随机的“垃圾值”hp100;// 赋值现在你的hp是100了intattack_power50;// 更帅的做法声明的同时赋值floatspeed5.5f;// 浮点数赋值加‘f’明确它是float类型。charfirst_skillQ;// 你的第一个技能键是Qcharplayer_name[]勇者;// 你的名字是一个字符串constfloatPI3.14159;// 定义一个圆周率常量它不可更改变量命名规则起个好名字的法则可用字符字母、数字、下划线_。不能以数字开头1st_player❌player1✅。区分大小写Hp和hp是两个不同的属性不能是关键词int,if,for这些是系统咒语不能用。勇者的咆哮名字要有意义hero_hp永远比a更易懂多用下划线或驼峰式heroHp。1.3 类型转换装备的融合与转化自动类型转换隐式当不同类型数据运算时系统会自动向“更强大”的类型转换避免数据丢失。inta5;doubleb2.5;doublecab;// a被自动提升为doublec的结果是7.5强制类型转换显式你主动施展“变形术”但可能损失精度。doublepi3.14159;intint_pi(int)pi;// 强制转换成int小数部分丢弃int_pi 3第二章修炼战斗技能——运算符全解析2.1 算术与赋值运算符基础剑术inta10,b3;intresult;resultab;// 加 result13resulta-b;// 减 result7resulta*b;// 乘 result30resulta/b;// 除 result3 (整数除法丢弃小数)resulta%b;// 取模求余数 result1 (10除以3余1)// 复合赋值运算符连续技a5;// 等价于 a a 5;a-2;// 等价于 a a - 2;a*2;// 等价于 a a * 2;a/3;// 等价于 a a / 3;a%2;// 等价于 a a % 2;2.2 自增自减一闪这是最容易让人迷惑的“身法”务必看清inta10;intb;ba;// 【先自增后赋值】 a先变成11然后b得到a的值(11)。结果a11, b11// 相当于a a 1; b a;intc10;intd;dc;// 【先赋值后自增】 d先得到c的值(10)然后c再变成11。结果c11, d10// 相当于d c; c c 1;2.3 位运算符操控能量本源直接操作二进制位是高手向技能假设a 5 (0101),b 3 (0011)ab;// 按位与同1为1 - 0101 0011 0001 (十进制1)a|b;// 按位或有1为1 - 0101 | 0011 0111 (十进制7)a^b;// 按位异或不同为1 - 0101 ^ 0011 0110 (十进制6)~a;// 按位取反0变11变0 - ~0101 1010 (看位数假设4位则是-6的补码)a1;// 左移一位全体左移低位补0 - 0101 1 1010 (十进制10) 【相当于乘2】a1;// 右移一位全体右移高位补符号位 - 0101 1 0010 (十进制2) 【相当于除2】2.4 逻辑与关系运算符战斗判断用于if、while等条件判断。关系运算符比较大小结果为真(1)或假(0)。53;// 1 (真)53;// 0 (假)5!3;// 1 (真)逻辑运算符连接多个条件。(53)(24);// 逻辑与两者都为真结果才为真 - 1 1 1(53)||(53);// 逻辑或至少一个为真结果就为真 - 1 || 0 1!(53);// 逻辑非真假颠倒 - !1 02.5 三目运算符条件运算符——简洁的选择条件 ? 表达式1 : 表达式2如果条件为真执行表达式1为假执行表达式2。intscore85;chargrade(score90)?A:B;// 如果分数90gradeA否则gradeB2.6 【超重要】运算符优先级连招顺序表当你写a b c * d;时先算哪个记住这个简化口诀并用()来明确你的意图口诀算术 关系 逻辑 赋值勇者的黄金法则不确定优先级时无脑加括号( )a b (c * (d));这样写意图一目了然永远不会错第三章抉择与轮回——流程控制3.1 分支语句命运的选择肢if-else if-else多路线剧情intmp50;if(mp100){printf(释放终极禁咒\n);}elseif(mp50){printf(释放高级魔法\n);}elseif(mp20){printf(释放普通火球术。\n);}else{printf(MP不足普通攻击\n);}注意else if的条件是从上到下判断的第一个满足的条件分支会被执行。switch-case精准选项匹配charchoiceB;switch(choice){caseA:printf(你选择了攻击。\n);break;// break至关重要用来跳出整个switch否则会“贯穿”执行下一个casecaseB:printf(你选择了防御。\n);break;caseC:printf(你选择了使用道具。\n);break;default:// 当所有case都不匹配时执行printf(无效的指令。\n);break;}3.2 循环语句无尽的修炼for循环知道具体修炼次数for (初始化; 循环条件; 更新) { 循环体 }// 修炼循环10次斩击for(inti0;i10;i){// i从0开始i10时循环每次循环后iprintf(进行第%d次斩击\n,i1);}while循环直到达成某个条件while (循环条件) { 循环体 }inthp100;while(hp0){// 只要血量大于0就继续战斗printf(战斗中当前HP: %d\n,hp);hp-20;// 每次受到20点伤害}printf(战斗结束。\n);do-while循环至少执行一次do { 循环体 } while (循环条件);intpassword;do{printf(请输入密码);scanf(%d,password);// 先输入一次密码}while(password!123456);// 再判断是否正确printf(密码正确登录成功\n);循环控制打破轮回break;立即终止整个循环跳出去。for(inti0;i10;i){if(i5)break;// 当i等于5时立刻结束循环printf(%d ,i);// 输出 0 1 2 3 4}continue;跳过本次循环剩下的代码直接进入下一次循环。for(inti0;i5;i){if(i2)continue;// 当i等于2时跳过本次循环的打印printf(%d ,i);// 输出 0 1 3 4}启程的试炼你的第一个综合程序#includestdio.hintmain(){intchoice;intscore0;printf(欢迎来到C语言试炼场\n);printf(请选择你的试炼1-简单 2-普通 3-困难: );scanf(%d,choice);// 用scanf从键盘获取输入switch(choice){case1:score100;break;case2:score200;break;case3:score300;break;default:printf(无效选择默认普通难度。\n);score200;}printf(你的初始积分是%d\n,score);// 进行5轮攻击for(intround1;round5;round){intdamageround*10;scoredamage;// 每轮积分增加printf(第%d轮攻击造成%d点伤害总积分%d\n,round,damage,score);}if(score300){printf(评价SSS你是天才\n);}else{printf(评价还需努力勇士\n);}return0;}恭喜你未来的C语言勇者你已经装备了最基础的武器和技能。下一阶段我们将探索“数组”兵团、“函数”必杀技和神秘的“指针”里世界法则保持这股热情继续前进吧(≧∇≦)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2426091.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!