C语言自用笔记--C语言简述(1)

一、初识C语言

1.1何为C语言

        最初的编程语言是以0、1为基本构成 的机器码直接进行编程,通过在纸带上打孔以代表不同信息,纸带的每一行规定8个孔位,其中打孔代表1,不打代表0,即纸带每一行是8个bit,两行也就是16个bit。再将纸带通过带有探针的孔位,以探针抬起与落下读取机器码。编程技术最早可以追溯到19世纪初,甚至早于计算机发明。此种以编码为基础进行的程序编写,晦涩难懂且不易查错,因而难以学习,但仍具有高效执行的优点。

        为了克服种种缺点,出现了诸如汇编以助记符形式的进行编程的语言,但汇编与机器语言都依赖于具体的机器,不同的机器的汇编与机器程序都是互不通用的,具有面向机器的特性,都属于低级语言。因而为了克服种种不便此后又出现了B语言、C语言等高级编程语言。计算机编程语言就是一种人们学会用来与电脑交流的语言,给计算机下指令,让计算机按照我们的意愿进行工作。C语言被广泛应用于底层软件开发,一台电脑只有硬件而无软件是不能正常工作的,它需要操作系统操作硬件进行各种工作,联通操作系统与硬件之间是驱动。我们日常使用是在操作系统之上的应用层,即就是我们所熟知的各类软件,应用层之下就是底层。C当然可以用于开发应用层,但更广泛应用于底层开发。

        C是典型的编译型语言,通常早期一个C程序是在文本编译器中编写完成并保存为扩展名为.c的文件,再通过一段汇编程序所组成称为编译器的软件(MSVC,GCC,CLANG等)利用命令行对文本文件进行编译生成目标文件(.obj),最后通过连接器链接库文件得到可执行文件(.exe),计算机中只有二进制可执行文件才能运行。编译器就如同汉译英翻译器一样,实现将人类能够读懂的高级编程语言转换成机器能读懂的机器语言,不进行编译计算机是无法理解高级语言所描写的程序想要实现什么功能,一般高级编程语言的一个语句对应多条机器指令。同一个项目通常有多个源文件,编译器分别将这些源文件进行编译生成目标文件,再通过链接器进行链接。

        如今开发一个程序只需要在集成开发环境(IDE)中即可完成以上全部功能,也就是说各类IDE集成了编辑器、编译器、连接器和调试器等等内容。对于Windows中VS2019是集成了MSVC的编译器,所以可以编写编译代码。另一种常用软件VSCODE则是一种单一的编辑器,需要装插件搭建C/C++开发环境才能进行编程,上手成本高,不推荐初学者使用。

        倘若一个程序员一个编程规范,这对于企业、国际间进行交流是不利的。为了在世界范围内有一个统一的国际语法标准,于美国最先颁布了ANSI C标准(C89,C11等),在此之后国际上就遵从此标准。

1.2如何学习好编程

        多看代码,多写代码,多模仿,多思考。

        计算机知识晦涩不容易自学,要求我们学会如何解决问题,学会如何学习,掌握学习方法,否则就是纸上谈兵。学号C的第一步是要选择一个好的工具,推荐首选VS2019,简单易上手,不需要配置开发环境,对新手较友好,VSCODE需要配置环境不推荐。其次用好一个主流编译器,VC6.0老旧兼容性不好,DEV C++很多年不更新,代码风格不好。最后不要做伸手党,先自己解决,不要不动脑,否则学不到技术。同时要选一门经典的语言深入学习,不要贪多而要精通才行,更要注重实践,不懂就问。

        学习使用码云、github托管代码与各种开源项目,这两种相当于代码仓库 可以存储各类代码(类比于相册里面存的照片,可以选择公开和私密)  ,也可作为投简历时附上blog链接、附上码云或github的代码仓库  链接。

学习路线:

1.计算机语言(C、C++)             

2.数据结构与算法:建立在语言基础上,编程无基础不要碰    

3.操作系统:难

4.计算机网络+网络编程:难      

5.数据库:较易                                          

6.脚本语言        

      学习好编程如下几步不可或缺:

1.自己敲代码

        选一本参考书籍学习语法规则一个逻辑结构应该用什么结构,看一本书掌握语法规则同时也要实践,动手写代码。不推荐新手C primer plus,书很厚很容易从入门到放弃。

(1)模仿阶段:在网上看一些入门阶段的代码。看这段代码作者怎么思考的,分为哪几个大步骤,再按照别人的思路尝试写出来 ,忘记了可以再去看一边再去写。不要简单抄写复制不思考。重点在于看别人代码思路。画图分析 代码间逻辑顺序、实现逻辑、步骤逻辑。

抄代码学不会编程!

例如写一个C程序,要求输出10个数中最大值、输出十个数和。

#include "stdio.h"//std for standard,i for input ,o for output
int nums[10];//创建含有是个整型字符的数组,所有元素默认初始值为0
int MAX;
int i=0,sum=0;
int main()
{
	//第一步输入,为数组一一赋值,这样的程序用户可以自定义输入数字,交互性好
	printf("Please input 10 nums:");
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &nums[i]);
	}
	//第二部比较,求和,重点依然在于for循环,先默认第一个最大,再用循环语句让后面每一个数与其比较,比他大就把大的赋值给他,以此类推
	MAX =  nums[0];

	for (i = 0; i < 10; i++)
	{	
		if (nums[i] > MAX)
		{
			MAX = nums[i];
		}
		sum += nums[i];//循环求和
	}

	//第三步输出
	printf("The MAX num in those nums is %d\n\a",MAX);//%d指定输出格式
	printf("The summation of those nums is %d",sum);//sum表示要输出变量sum的值,执行代码时sum将替代%d

	return 0;//程序正常运行结束返回一个整型0,若执行过程中出现错误返回一个非0整数。通过此判断main函数是否正常运行。
}

(2)自主实现阶段:以上述代码为例,梳理思路,写出代码。

程序最终要实现的目的是输出最值与和。那么第一步需要先得到十个数;第二步是核心需要完成这两个功能;第三步输出这两个值。然后建立程序框架,再对每一部分分别进行编程。要想能够达到完全自主写出完成特定功能的代码,要多看多思考多写多刷题

2.画图理解,内存布局

C是一门偏底层的语言,可以直接操作或访问内存,所以需要写出代码的内存布局。如局部变量创建在哪里,数组怎么创建的,指针和内存的关系等等

3.多调试

调试一步一步看程序是如何运行的,观察变量一步步如何变化。这样可以找到一些bug,并且调试能帮助更好理解代码理解运行逻辑。

下图中行号47左侧就是当前代码运行的地方,可以看到从main函数开始执行,在监视窗口可以看到变量类型以及初始值和每一步赋值情况。

调试可以很好的监视与观察内存。

(调试部分具体笔记待续...)

  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值