大家好,这篇文章可以说是一本书,排版,码字花了很长时间,10W 字 C 语言从入门到精通保姆教程2021年版
,感觉有价值记忆一键三连
支持。
此外,推荐一个外卖服务号码,每天收到外卖红包,以及当地生活折扣。点击下面的官方帐户。
目录
-
计算机常识
-
什么是计算机程序?
-
什么是计算机语言? ?
-
常见的计算机语言有哪些类型?
-
什么是C语言?
-
C语言历史
-
C语言标准
-
C语言现状
-
为什么要学C语言?
-
如何学好C语言?
-
如果你想做好工作,你必须先利用其器械
-
编写C语言程序用什么工具 ?
-
什么是Qt Creator ?
-
Qt Creator安装
-
什么是环境变量?
-
为什么要配置系统变量?
-
Qt Creator快捷键
-
如何创建C语言程序?
-
如何创建C语言文件?
-
C语言程序组成
-
函数定义格式
-
如何定义好函数?
-
如何运行编写好的程序
-
main函数注意点等写作方法
-
C练习语言程序
-
初学者如何避免程序?BUG
-
多语言对比
-
什么是注释?
-
为什么要使用注释?
-
注释的分类
-
注意事项
-
注释应用场景
-
使用注释的好处
-
什么是关键词?
-
关键字分类
-
什么是标识符?
-
标识符命名规则
-
练习
-
标识符命名规范
-
什么是数据?
-
数据分类
-
C语言数据类型
-
常量是什么?
-
常量的类型
-
什么是变量?
-
如何定义变量
-
如何使用变量?
-
变量的初始化
-
如何修改变量值?
-
变量之间的值传递
-
如何查看变量值?
-
变量作用域
-
变量内存分析(简单版)
-
printf函数
-
Scanf函数
-
scanf运行原理
-
putchar和getchar
-
操作符的基本概念
-
运算符分类
-
运算符的优先级和组合
-
算数运算符
-
赋值运算符
-
自增自减运算符
-
sizeof运算符
-
逗号运算符
-
关系运算符
-
逻辑运算符
-
三目运算符
-
类型转换
-
阶段练习
-
流程控制的基本概念
-
选择结构
-
选择结构if
-
选择结构switch
-
循环结构
-
循环结构while
-
循环结构do while
-
循环结构for
-
四大跳转
-
循环的嵌套
-
图形打印
-
函数基本概念
-
函数的分类
-
函数的定义
-
函数的参数和返回值
-
函数的声明
-
main函数分析
-
递归函数(理解)
-
制定基本概念
-
进制转换
-
十进制小数转化为二进制小数
-
二进制小数转化为十进制小数
-
原码反码补码
-
位运算符
-
变量内存分析
-
char存储细节的类型
-
类型说明符
-
short和long
-
signed和unsigned
-
数组的基本概念
-
定义数组
-
初始化数组
-
数组的使用
-
数组的遍历
-
计算数组长度的方法
-
练习
-
数组内部存储细节
-
数组越界问题
-
数组注意事项
-
数组和函数
-
作为函数参数的参数元素
-
作为函数参数的数组名
-
数组名称是函数参数的注意点
-
计数排序(Counting Sort)
-
选择排序
-
冒泡排序
-
插入排序
-
希尔排序
-
折半查找
-
进制转换(查表法)
-
二维数组
-
定义二维数组
-
二维数组的初始化
-
二维数组的应用场景
-
二维数组的遍历和存储
-
二维数组的遍历
-
存储二维数组
-
二维数组和函数
-
二维数组作为函数参数的注意点
-
作业
-
字符串的基本概念
-
字符串的初始化
-
字符串输出
-
常用的字符串方法
-
练习
-
字符串数组的基本概念
-
指针的基本概念
-
什么是指针
-
指针变量是什么?
-
定义指针变量格式
-
指针变量的初始化方法
-
访问指针指向的存储空间
-
指针类型
-
二级指针
-
练习
-
指针访问数组元素
-
指针与字符串
-
指向函数指针
-
什么是结构体?
-
定义结构类型
-
定义结构体变量
-
访问结构成员
-
结构体变量的初始化
-
结构类型作用域
-
结构体数组
-
结构体指针
-
结构内存分析
-
结构体变量占存储空间的大小
-
结构体嵌套定义
-
结构体和函
-
共用体
-
枚举
-
全局变量和局部变量
-
auto和register关键字
-
static关键字
-
extern关键字
-
static与extern对函数的作用
-
Qt Creator编译过程做了什么?
-
计算机是运算过程分析
-
预处理指令
-
预处理指令的概念
-
宏定义
-
带参数的宏定义
-
条件编译
-
typedef关键字
-
宏定义与函数以及typedef区别
-
const关键字
-
如何使用const?
-
内存管理
-
进程空间
-
栈内存(Stack)
-
堆内存(Heap)
-
malloc函数
-
free函数
-
calloc函数
-
realloc函数
-
链表
-
静态链表
-
动态链表
-
动态链表头插法
-
动态链表尾插法
-
动态链优化
-
链表销毁
-
链表长度计算
-
链表查找
-
链表删除
-
作业
-
文件基本概念
-
文件的打开和关闭
-
一次读写一个字符
-
一次读写一行字符
-
一次读写一块数据
-
读写结构体
-
其它文件操作函数
计算机常识
-
顾名思义,就是能够进行数据运算的机器(台式电脑、笔记本电脑、平板电脑、智能手机)
-
计算机_百度百科
-
关于电子计算机的发明者是谁这一问题,有好几种答案:
-
1936年首先提出了一种以程序和输入数据相互作用产生输出的计算机,后人将这种机器命名为通用图灵计算机
-
1938年发明了首台采用继电器进行工作的计算机,这台计算机命名为,但是继电器是机械式的,并不是完全的电子器材
-
1942年发明了首台采用真空管*的计算机,这台计算机命名为ABC
-
1946年ENIAC诞生,它拥有了今天计算机的主要结构和功能,是通用计算机
现在世界上的第一台现代电子计算机是1946年在美国宾夕法尼亚大学诞生的ENIAC(Electronic Numerical Integrator And Calculator)
-
计算机是一种电器, 所以计算机只能识别两种状态,
-
正是因为如此, 最初ENIAC的程序是由很多开关和连接电线来完成的。但是这样导致(需要人工重新设置很多开关的状态和连接线)
-
为了提高效率,工程师们想能不能把程序和数据都放在存储器中, 数学家冯·诺依曼将这个思想以数学语言系统阐述,提出了存储程序计算机模型(这是所谓的冯·诺依曼机)
-
那利用数学语言如何表示计算机能够识别的通电和断电两种状态呢?
-
-
非常简单用0和1表示即可
-
0和1更准确的是应该是高电平和低电平, 但是这个不用了解, 只需要知道计算机只能识别0和1以及存储的数据都是由0和1组成的即可。
什么是计算机程序?
-
计算机程序是为了告诉计算机"做某件事或解决某个问题"而用"编写的命令集合(语句)
-
只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作,计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成
-
现实生活中你如何告诉别人如何做某件事或者解决某个问题?
-
-
通过人能听懂的语言: 张三你去楼下帮我买一包烟, 然后顺便到快递箱把我的快递也带上来
-
其实我们通过人能听懂的语言告诉别人做某件事就是在发送一条条的指令
-
计算机中也一样, 我们可以通过计算机语言告诉计算机我们想做什么, 每做一件事情就是一条指令, 一条或多条指令的集合我们就称之为一个计算机程序
-
什么是计算机语言 ?
-
-
中国人和中国人交流,使用中文语言
-
美国人和美国人交流,使用英文语言
-
人想要和计算机交流,使用计算机语言
-
-
-
如果一个很牛人可能同时掌握了中文语言和英文语言, 那么想要和这个人交流既可以使用中文语言,也可以使用英文语言
-
计算机其实就是一个很牛的人, 计算机同时掌握了几十门甚至上百门语言, 所以我们只要使用任何一种计算机已经掌握的语言就可以和计算机交流
-
常见的计算机语言类型有哪些?
-
-
所有的代码里面只有0和1, 0表示不加电,1表示加电(纸带存储时 1有孔,0没孔)
-
优点:直接对硬件产生作用,程序的执行效率非常非常高
-
缺点:指令又多又难记、可读性差、无可移植性
-
-
-
符号化的机器语言,用一个符号(英文单词、数字)来代表一条机器指令
-
优点:直接对硬件产生作用,程序的执行效率非常高、可读性稍好
-
缺点:符号非常多和难记、无可移植性
-
-
-
非常接近自然语言的高级语言,语法和结构类似于普通英文
-
优点:简单、易用、易于理解、远离对硬件的直接操作、有可移植性
-
缺点:有些高级语言写出的程序执行效率并不
-
-
-
1 + 1
-
MOV AX, 1 ADD AX, 1
-
10111000 00000001 00000000 00000101 00000001 00000000
-
机器语言
-
汇编语言
-
高级语言
-
什么是C语言?
-
-
非常接近自然语言
-
程序的执行效率非常高
-
-
C语言是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的,
-
-
例如:C++、C#、Object-C、Java、Go等等
-
-
C语言是所有编程语言中的经典,很多著名的系统软件也是C语言编写的
-
-
几乎所有的操作系统都是用C语言编写的
-
几乎所有的计算机底层软件都是用C语言编写的
-
几乎所有的编辑器都是C语言编写的
-
C语言历史
-
最早的高级语言:FORTRAN-->ALGOL-->CPL-->BCPL-->C-->C++等
“初,世间无语言,仅电路与连线。及大牛出,天地开,始有 FORTRAN、 LISP、ALGOL 随之, 乃有万种语”
-
1963年英国剑桥大学推出了CPL(Combined Programming Langurage)语言。CPL语言在ALGOL 60的基础上接近硬件一些,但规模比较大,难以实现
-
1967年英国剑桥大学的 Matin Richards(理查兹)对CPL语言做了简化,推出了 BCPL (Base Combined Programming Langurage)语言
-
1970年美国贝尔实验室的 Ken Thompson(肯·汤普逊) 以 BCPL 语言为基础,又作了进一步的简化,设计出了很简单的而且很接近硬件的 B 语言(取BCPL的第一个字母),并用B语言写出了第一个 UNIX 操作系统。但B语言过于简单,功能有限
-
1972年至1973年间,贝尔实验室的 Dennis.Ritchie(丹尼斯·里奇) 在 B语言的基础上设计出了C语言(取BCPL的第二个字母)。C语言即保持 BCPL 语言和B语言的优点(精练、接近硬件),又克服了他们的缺点(过于简单,数据无类型等)
C语言标准
-
1983年美国国家标准局(American National Standards Institute,)成立了一个委员会,开始制定C语言标准的工作
-
1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C()
-
1999年,国际标准化组织ISO又对C语言标准进行修订,在基本保留原C语言特征的基础上,针对应该的需要,增加了一些功能,命名为
-
2011年12月,ANSI采纳了ISO/IEC 9899:2011标准。这个标准通常即
C语言现状
-
年度编程语言
-
该奖项颁发给了一年中最热门的编程语言
-
编程语言排行榜查看
为什么要学习C语言?
-
40多年经久不衰
-
了解操作系统、编译原理、数据结构与算法等知识的最佳语言
-
了解其它语言底层实现原理必备语言
-
基础语法与其它高级语言类似,学会C语言之后再学习其它语言事半功倍,且知根知底
当你想了解底层原理时,你才会发现后悔当初没有学习C语言 当你想学习一门新的语言时, 你才会发现后悔当初没有学习C语言 当你使用一些高级框架、甚至系统框架时发现提供的API都是C语言编写的, 你才发现后悔当初没有学习C语言 学好数理化,走遍天下都不拍 学好C语言,再多语言都不怕
如何学好C语言
学习本套课程之前 | 学习本套课程中 | 学习本套课程之后 |
---|---|---|
-
如何达到这样的效果
工欲善其事必先利其器
编写C语言程序用什么工具 ?
-
记事本(开发效率低)
-
Vim(初学者入门门槛高)
-
VSCode(不喜欢)
-
eclipse(不喜欢)
-
CLion(深爱, 但收费)
-
Xcode(逼格高, 但得有苹果电脑)
-
Qt Creator(开源免费,跨平台安装和运行)
什么是Qt Creator ?
-
Qt Creator 是一款新的轻量级集成开发环境(IDE)。它能够跨平台运行,支持的系统包括 Windows、Linux(32 位及 64 位)以及 Mac OS X
-
Qt Creator 的设计目标是使开发人员能够利用 Qt 这个应用程序框架更加快速及轻易的完成开发任务
-
开源免费, 简单易用, 能够满足学习需求
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
Qt Creator安装
http://download.qt.io/
你的安装路径\5.11.0\mingw53_32\bin 你的安装路径\Tools\mingw530_32\bin
什么是环境变量?
-
打开我们添加环境变量的两个目录, 不难发现里面大部分都是.exe的可执行程序
-
如果我们不配置环境变量, 那么每次我们想要使用这些"可执行程序"都必须"先找到这些应用程序对应的文件夹"才能使用
-
为了方便我们在电脑上"任何地方"都能够使用这些"可执行程序", 那么我们就必须添加环境变量, 因为Windows执行某个程序的时候, 会先到"环境变量中Path指定的路径中"去查找
为什么要配置系统变量,不配置用户变量
-
用户变量只针对使用这台计算机指定用户
-
-
一个计算机可以设置多个用户, 不同的用户用不同的用户名和密码
-
当给计算机设置了多个用户的时候,启动计算机的时候就会让你选择哪个用户登录
-
-
系统变量针对使用这台计算机的所有用户
-
-
也就是说设置了系统变量, 无论哪个用户登录这台计算机都可以使用你配置好的工具
-
Qt Creator快捷键
-
Qt Creator Keyboard Shortcuts(Documentation)[1]
-
Qt Creator Keyboard Shortcuts(Wiki)[2]
如何创建C语言程序
-
这个世界上, 几乎所有程序员入门的第一段代码都是Hello World.
-
原因是当年C语言的作者Dennis Ritchie(丹尼斯 里奇)在他的名著中第一次引入, 传为后世经典, 其它语言亦争相效仿, 以示敬意
如何创建C语言文件
C语言程序组成
-
手机有很多功能, "开机","关机","打电话","发短信","拍照"等等
-
手机中的每一个功能就相当于C语言程序中的一个程序段(函数)
-
众多功能中总有一个会被先执行,不可能多个功能一起执行
-
想使用手机必须先执行手机的开机功能
-
所以C语言程序也一样,由众多功能、众多程序段组成, 众多C语言程序段中总有一个会被先执行, 这个先执行的程序段我们称之为"主函数"
-
一个C语言程序由多个"函数"构成,每个函数有自己的功能
-
一个程序
-
如果一个程序没有主函数,则这个程序不具备运行能力
-
程序运行时系统会主函数,而其它函数需要开发者
-
主函数有固定书写的格式和范写
函数定义格式
-
主函数定义的格式:
-
-
int 代表函数执行之后会返回一个整数类型的值
-
main 代表这个函数的名字叫做main
-
() 代表这是一个函数
-
{} 代表这个程序段的范围
-
return 0; 代表函数执行完之后返回整数0
-
-
int main() {
-
// insert code here...
-
return 0;
-
}
-
其它函数定义的格式
-
-
int 代表函数执行之后会返回一个整数类型的值
-
call 代表这个函数的名字叫做call
-
() 代表这是一个函数
-
{} 代表这个程序段的范围
-
return 0; 代表函数执行完之后返回整数0
-
-
int call() {
-
return 0;
-
}
如何执行定义好的函数
-
主函数(main)会由系统自动调用, 但其它函数不会, 所以想要执行其它函数就必须在main函数中手动调用
-
-
call 代表找到名称叫做call的某个东西
-
() 代表要找到的名称叫call的某个东西是一个函数
-
; 代表调用函数的语句已经编写完成
-
所以call();代表找到call函数, 并执行call函数
-
-
int main() {
-
call();
-
return 0;
-
}
-
如何往屏幕上输出内容
-
-
并没有告诉printf函数,我们要往屏幕上输出什么内容
-
找不到printf函数的实现代码
-
输出内容是一个比较复杂的操作, 所以系统提前定义好了一个专门用于输出内容的函数叫做printf函数,我们只需要执行系统定义好的printf函数就可以往屏幕上输出内容
-
但凡需要执行一个函数, 都是通过函数名称+圆括号的形式来执行
-
如下代码的含义是: 当程序运行时系统会自动执行main函数, 在系统自动执行main函数时我们手动执行了call函数和printf函数
-
经过对代码的观察, 我们发现两个问题
-
-
int call(){
-
return 0;
-
}
-
int main(){
-
call();
-
printf();
-
return 0;
-
}
-
如何告诉printf函数要输出的内容
-
-
将要输出的内容编写到printf函数后面的圆括号中即可
-
注意: 圆括号中编写的内容必须用双引号引起来
-
printf("hello world\n");
-
如何找到printf函数的实现代码
-
-
由于printf函数是系统实现的函数, 所以想要使用printf函数必须在使用之前告诉系统去哪里可以找到printf函数的实现代码
-
#include <stdio.h> 就是告诉系统可以去stdio这个文件中查找printf函数的声明和实现
-
-
#include <stdio.h>
-
int call(){
-
return 0;
-
}
-
int main(){
-
call();
-
printf("hello world\n");
-
return 0;
-
}
如何运行编写好的程序
-
方式1:
-
点击小榔头将"源代码"编译成"可执行文件"
-
找到编译后的源代码, 打开终端(CMD)运行可执行文件
-
方式2
-
直接点击Qt开发工具运行按钮
main函数注意点及其它写法
-
C语言中,每条完整的语句后面都必须以分号结尾
-
int main(){
-
printf("hello world\n") // 如果没有分号编译时会报错
-
return 0;
-
}
-
int main(){
-
// 如果没有分号,多条语句合并到一行时, 系统不知道从什么地方到什么地方是一条完整语句
-
printf("hello world\n") return 0;
-
}
-
C语言中除了注释和双引号引起来的地方以外都不能出现中文
-
int main(){
-
printf("hello world\n"); // 这里的分号如果是中文的分号就会报错
-
return 0;
-
}
-
一个C语言程序只能有一个main函数
-
int main(){
-
return 0;
-
}
-
int main(){ // 编译时会报错, 重复定义
-
return 0;
-
}
-
一个C语言程序不能没有main函数
-
int call(){ // 编译时报错, 因为只有call函数, 没有main函数
-
return 0;
-
}
-
int mian(){ // 编译时报错, 因为main函数的名称写错了,还是相当于没有main函数
-
return 0;
-
}
-
main函数前面的int可以不写或者换成void
-
#include <stdio.h>
-
main(){ // 不会报错
-
printf("hello world\n");
-
return 0;
-
}
-
#include <stdio.h>
-
void main(){ // 不会报错
-
printf("hello world\n");
-
return 0;
-
}
-
main函数中的return 0可以不写
-
int main(){ // 不会报错
-
printf("hello world\n");
-
}
-
多种写法不报错的原因
-
-
Turbo C
-
Visual C(VC)
-
GNU C(GCC)
-
C语言最早的时候只是一种规范和标准(例如C89, C11等)
-
标准的推行需要各大厂商的支持和实施
-
而在支持的实施的时候由于各大厂商利益、理解等问题,导致了实施的标准不同,发生了变化
-
所以大家才会看到不同的书上书写的格式有所不同, 有的返回int,有的返回void,有的甚至没有返回值
-
所以大家只需要记住最标准的写法即可, no zuo no die
-
-
#include <stdio.h>
-
int main(){
-
printf("hello world\n");
-
return 0;
-
}
Tips: 语法错误:编译器会直接报错 逻辑错误:没有语法错误,只不过运行结果不正确
C语言程序练习
-
编写一个C语言程序,用至少2种方式在屏幕上输出以下内容
-
*** ***
-
*********
-
*******
-
****
-
**
-
普通青年实现
-
printf(" *** *** \n");
-
printf("*********\n");
-
printf(" *******\n");
-
printf(" ****\n");
-
printf(" **\n");
-
2B青年实现
printf(" *** *** \n*********\n *******\n ****\n **\n");
-
文艺青年实现(装逼的, 先不用理解)
-
int i = 0;
-
while (1) {
-
if (i % 2 == 0) {
-
printf(" *** *** \n");
-
printf("*********\n");
-
printf(" *******\n");
-
printf(" ****\n");
-
printf(" **\n");
-
}else
-
{
-
printf("\n");
-
printf(" ** ** \n");
-
printf(" *******\n");
-
printf(" *****\n");
-
printf(" **\n");
-
}
-
sleep(1);
-
i++;
-
system("cls");
-
}
初学者如何避免程序出现BUG
-
_ooOoo_
-
o8888888o
-
88" . "88
-
(| -_- |)
-
O\ = /O
-
____/`---'\____
-
. ' \\| |// `.
-
/ \\||| : |||// \
-
/ _||||| -:- |||||- \
-
| | \\\ - /// | |
-
| \_| ''\---/'' | |
-
\ .-\__ `-` ___/-. /
-
___`. .' /--.--\ `. . __
-
."" '< `.___\_<|>_/___.' >'"".
-
| | : `- \`.;`\ _ /`;.`/ - ` : | |
-
\ \ `-. \_ __\ /__ _/ .-` / /
-
======`-.____`-.___\_____/___.-`____.-'======
-
`=---='
-
.............................................
-
佛祖保佑 有无BUG
-
━━━━━━神兽出没━━━━━━
-
┏┓ ┏┓
-
┏┛┻━━━━━━┛┻┓
-
┃ ┃
-
┃ ━ ┃
-
┃ ┳┛ ┗┳ ┃
-
┃ ┃
-
┃ ┻ ┃
-
┃ ┃
-
┗━┓ ┏━┛Code is far away from bug with the animal protecting
-
┃ ┃ 神兽保佑,代码无bug
-
┃ ┃
-
┃ ┗━━━┓
-
┃ ┣┓
-
┃ ┏━━┛┛
-
┗┓┓┏━┳┓┏┛
-
┃┫┫ ┃┫┫
-
┗┻┛ ┗┻┛
-
━━━━━━感觉萌萌哒━━━━━━
-
´´´´´´´´██´´´´´´´
-
´´´´´´´████´´´´´´
-
´´´´´████████´´´´
-
´´`´███▒▒▒▒███´´´´´
-
´´´███▒●▒▒●▒██´´´
-
´´´███▒▒▒▒▒▒██´´´´´
-
´´´███▒▒▒▒██´ 项目:第一个C语言程序
-
´´██████▒▒███´´´´´ 语言:C语言
-
´██████▒▒▒▒███´´ 编辑器:Qt Creator
-
██████▒▒▒▒▒▒███´´´´ 版本控制:git-github
-
´´▓▓▓▓▓▓▓▓▓▓▓▓▓▒´´ 代码风格:江哥style
-
´´▒▒▒▒▓▓▓▓▓▓▓▓▓▒´´´´´
-
´.▒▒▒´´▓▓▓▓▓▓▓▓▒´´´´´
-
´.▒▒´´´´▓▓▓▓▓▓▓▒
-
..▒▒.´´´´▓▓▓▓▓▓▓▒
-
´▒▒▒▒▒▒▒▒▒▒▒▒
-
´´´´´´´´´███████´´´´´
-
´´´´´´´´████████´´´´´´´
-
´´´´´´´█████████´´´´´´
-
´´´´´´██████████´´´´ 大部分人都在关注你飞的高不高,却没人在乎你飞的累不累,这就是现实!
-
´´´´´´██████████´´´ 我从不相信梦想,我,只,相,信,自,己!
-
´´´´´´´█████████´´
-
´´´´´´´█████████´´´
-
´´´´´´´´████████´´´´´
-
________▒▒▒▒▒
-
_________▒▒▒▒
-
_________▒▒▒▒
-
________▒▒_▒▒
-
_______▒▒__▒▒
-
_____ ▒▒___▒▒
-
_____▒▒___▒▒
-
____▒▒____▒▒
-
___▒▒_____▒▒
-
███____ ▒▒
-
████____███
-
█ _███_ _█_███
-
——————————————————————————女神保佑,代码无bug——————————————————————
多语言对比
-
C语言
-
#include<stdio.h>
-
int main() {
-
printf("南哥带你装B带你飞");
-
return 0;
-
}
-
C++语言
-
#include<iostream>
-
using namespace std;
-
int main() {
-
cout << "南哥带你装B带你飞" << endl;
-
return 0;
-
}
-
OC语言
-
#import <Foundation/Foundation.h>
-
int main() {
-
NSLog(@"南哥带你装B带你飞");
-
return 0;
-
}
-
Java语言
-
class Test
-
{
-
public static viod main()
-
{
-
system.out.println("南哥带你装B带你飞");
-
}
-
}
-
Go语言
-
package main
-
import "fmt" //引入fmt库
-
func main() {
-
fmt.Println("南哥带你装B带你飞")
-
}
什么是注释?
-
注释是在所有计算机语言中都非常重要的一个概念,从字面上看,就是注解、解释的意思
-
注释可以用来解释某一段程序或者某一行代码是什么意思,方便程序员之间的交流沟通
-
注释可以是任何文字,也就是说可以写中文
-
被注释的内容在开发工具中会有特殊的颜色
为什么要使用注释?
-
没有编写任何注释的程序
-
void printMap(char map[6][7] , int row, int col);
-
int main(int argc, const char * argv[])
-
{
-
char map[6][7] = {
-
{'#', '#', '#', '#', '#', '#', '#'},
-
{'#', ' ', ' ', ' ', '#' ,' ', ' '},
-
{'#', 'R', ' ', '#', '#', ' ', '#'},
-
{'#', ' ', ' ', ' ', '#', ' ', '#'},
-
{'#', '#', ' ', ' ', ' ', ' ', '#'},
-
{'#', '#', '#', '#', '#', '#', '#'}
-
};
-
int row = sizeof(map)/sizeof(map[0]);
-
int col = sizeof(map[0])/ sizeof(map[0][0]);
-
printMap(map, row, col);
-
int pRow = 2;
-
int pCol = 1;
-
int endRow = 1;
-
int endCol = 6;
-
while ('R' != map[endRow][endCol]) {
-
printf("亲, 请输入相应的操作\n");
-
printf("w(向上走) s(向下走) a(向左走) d(向右走)\n");
-
char run;
-
run = getchar();
-
switch (run) {
-
case 's':
-
if ('#' != map[pRow + 1][pCol]) {
-
map[pRow][pCol] = ' ';
-
pRow++;//3
-
map[pRow][pCol] = 'R';
-
}
-
break;
-
case 'w':
-
if ('#' != map[pRow - 1][pCol]) {
-
map[pRow][pCol] = ' ';
-
pRow--;
-
map[pRow][pCol] = 'R';
-
}
-
break;
-
case 'a':
-
if ('#' != map[pRow][pCol - 1]) {