你学不懂C语言,是因为不懂编写C程序的7个步骤
编写一个C程序,这是一个很复杂的问题,面对复杂的问题,学会把它分解成若干个小问题,一个个小问题的解决,最后思路很清晰地解决掉这个“麻烦”。
一般情况下,我们把编写C程序分为7个步骤,懂得了后,编写程序就会有整体的思路,再也不像从前那样毫无头绪了。
1.定义程序的目标
定目标。明确这个程序是实现什么样的功能,你自己想要做出什么。明白你的程序需要哪些信息,像数学的公式、数学的单位转换信息。比如判断一个数是不是素数,“素数”在数学上是怎么界定的呢?这些都是你应该想清楚、弄明白的。不要一上来,就想着怎么用计算机语言表示。要从头到尾的想清楚你该怎么干。
2.设计程序
上一步已经对这个程序要完成什么样的任务,有了大概的认识。现在你要考虑的是用程序该如何完成它。把你的想法、思路往程序实现上逼近。
-
用户看到的整个程序界面应该是怎样的?目标用户是怎样的一类人?你需要花费多长的时间来解决掉这个程序?
-
在程序中如何表示数据,用数组还是结构体呢?用什么方法处理数据?这一步也不需要想到具体的代码怎么写。
小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:【8.7.0+九.六.三+2.5.1】适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程
3.编写代码
这一步就是要把你设计的程序,按照你的解决逻辑翻译成C语言,一条条语句的打出来。
-
这就要求你的C语言基本语法知识要扎实了,比如一个输入函数scanf(),这种最基础的,你要能够想到关于scanf()尽可能多的用法,以及可能出错的地方。
-
C语言:scanf()函数学习攻略
4.编译
这一步是将你编写好的C程序代码翻译成机器能够运行的机器码。翻译过程会使用编译器这一工具,在c/c++开发工具里都会集合有编辑器、编译器。
-
值得注意的是,如果你使用的是Code::Blocks,默认没有编译器的,一定要下载带有mingw的。
-
理解编译后产生的错误或者警告,也是你需要掌握的一项技能。
-
选对C/C++开发工具,让编程得心应手
5.运行程序
上一步,编译链接成功后,就能进行正常的运行了。可运行的程序就是可执行文件.exe。
6.测试和调试程序
运行结果与自己设计的思路是否一致。可以运行的程序,只能说是语法上没有错误,而语义上是否存在错误,就需要多次的测试。bug与debug的过程。
7.维护和修改代码
在现实的工作中,这是软件维护工程师干的事,很多bug都是在产品使用多了后才发现的,他们最大的痛苦不是改错,是要看懂别人的代码后进行改错。平时写代码,要注重程序的可读性。软件维护工程师的从业人数也是蛮多的。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
「c/c++专业知识讲解」超详细讲解栈和堆的区别!
预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static):全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字常量区:常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区:存放函数体的二进制代码。 例子程序 这是一个前辈写的,非常详细 #include"stdio.h" inta=0;//全局初始化区 char*p1;//全局未初始化区 voidmain(void) { intb;//栈 chars[]="abc";//栈 char*p2;//栈 char*p3="123456";//123456/0在常量区,p3在栈上。...
- 下一篇
JavaScript 新语法详解:Class 的私有属性与私有方法
proposal-class-fields与proposal-private-methods定义了 Class 的私有属性以及私有方法,这 2 个提案已经处于 Stage 3,这就意味着它们已经基本确定下来了,等待被加入到新的 ECMAScript 版本中。事实上,最新的 Chrome 已经支持了 Class 私有属性。 那么,对于 Class 的私有属性与私有方法,它们究竟是什么呢?它们是怎样工作的?为什么要使用#符号来定义呢? Class 的私有属性语法如下: class Point { #x; #y; constructor(x, y) { this.#x = x; this.#y = y; } equals(point) { return this.#x === point.#x && this.#y === point.#y; } } 我们可以将其语法理解为 2 个部分: 定义 Class 私有属性 引用 Class 私有属性 定义 Class 私有属性 私有属性与公共属性的定义方式几乎是一样的,只是需要在属性名称前面添加#符号: class Foo { pu...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群