您好,欢迎访问三七文档
本文由xwaga贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。本文包括:本文包括:1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.1.引言2.什么是C语言?3.最简单的C程序4.C程序编译过程解析5.变量:程序保存结果的手段6.Printf7.Printf:读取用户输入8.Scanf9.if语句和while循环10.示例:编写能够打印华氏-摄氏温度转换表的程序11.数组12.更多变量知识13.函数14.函数原型15.函数库16.创建一个函数库17.makefile18.文本文件19.打开文本文件20.读取文本文件21.指针22.为什么要用指针?23.指针基础24.内存地址25.指向同一地址26.指针常见错误27.指针作为函数参数28.动态数据结构29.计算机中的栈和堆30.malloc函数和free函数31.指针进阶32.指向结构体的指针33.指向指针的指针34.链表栈35.用指针操作数组36.字符串37.字符串须知38.运算符优先级39.命令行参数40.二进制文件41.了解更多信息软件类文章42.阅读所有软件软件C语言是一种广受欢迎且用途广泛的程序设计语言。人们使用它编写计算机程序计算机程序。因为C计算机程序功能强、效率高,所以全世界的程序员都喜欢用它。如果您是一名程序员,或者希望成为一名程序员的话,那么学习C语言会使您受益匪浅:您将可以在许多平台上阅读和编写程序。小到微控制器,大到最先进的科研系统,到处都是C语言的用武之地。许多现代操作系统也是用C语言编写的。学习过C语言后,再进阶的面向对象C++语言就容易多了。C++是对C的扩展。不先掌握C语言而直接学习C++是非常困难的。本文中,我们将会循序渐进地完整介绍C语言,并教会您怎样从零起步成为一名C程序员。一旦您掌握了C语言,您一定会对自己可以做的事情感到吃惊的!C语言入门教程C是一种计算机编程语言就是说可以用C编写指令清单交给计算机去执行。是当前正在计算机编程语言。C计算机编程语言使用的成千上万种编程语言之一。它已经有几十年的历史了。因为它功能强大而且效率很高,所以受到了程序员们广泛的欢迎。C还是一种容易学习的语言。和其他一些语言相比,C的风格稍有点古怪,但您会很快适应的。HSWC语言编译器C是所谓的编译型语言编译型语言,意思是说您写好的源程序必须通过C编译器来运行,使它变成可编译器编译型语言以在计算机上运行(执行)的可执行文件可执行文件。C源程序是供人阅读的,而编译器产生的可执行可执行文件程序是供计算机读入和执行的。也就是说,要编写并运行一个C程序,您必须借助于C编译器。如果使用UNIX系统(例如,您在UNIX主机上用C编写CGI脚本,或者您是学生,在实验室的UNIX机器上工作),C编译器是免费提供的。它的名字是cc或者gcc,可以通过命令行调用。您如果是学生,那么学校很可能会向您提供编译器。您只要查一下学校提供什么样的编译器并学习使用即可。如果您是在家使用Windows操作系统的计算机,则需要下载免费的C编译器或是购买商业的C编译器。微软公司的VisualC++是一套广泛使用的商业编译环境,可以编译C和C++程序。可惜这套软件要花费几百美元。如果不想花那么多钱购买商业编译器的话,那么您可以在网上挑选一款免费的编译器。如果您想找的话,不妨从开始吧。我们会从一个极其简单的C语言程序为例开始,循序渐进。在这个例子中,我假定您使用的是UNIX命令行,并以gcc作为您的开发环境。如果您使用的并不是这些,所有的代码依然可以正常运行——您只是需要使用其他可用的编译器,才能理解这些代码。让我们从一个最简单的C程序开始,了解一下C的基本要素和编译过程。将下面的程序录入一个标准的文本编辑器(UNIX上用vi或emacs、Windows上用Notepad、Macintosh上用TeachText),然后以samp.c的文件名保存。文件名如果没有.c结尾,编译的时候就很可能会出现一些错误,所以要确保文件名以.c结尾。另外,请确保您的编辑器不会自动在文件名末尾添加后缀(如.txt)。下面是我们的第一个程序:#includeintmain(){printf(这是我第一个程序的输出!\n);return0;}执行时,程序使计算机输出“这是我第一个程序的输出!”,之后便退出了。真是简单到不能再简单了!书写位置录入本程序时,注意将#include中的“#”放在第一列,即最左侧。其他行的间距和缩进可随个人喜好选择。某些UNIX系统上有一个叫cb的C程序美化器,它可以为您美化代码格式。上例程序代码的空格和缩进风格可作为格式的范例。请按下面步骤编译本程序:在UNIX系统上,键入gccsamp.c-osamp(若gcc不能用就用cc)。此命令行的作用是调用名为gcc的C编译器来编译samp.c,并将生成的可执行文件命名为samp。要运行编译好的程序,请键入samp(有些UNIX系统上要键入./samp)。在使用在使用DJGPP的DOS和Windows电脑上,请在MS-DOS命令中键入gccsamp.c-osamp.exe。这条命令会调用名叫gcc的C编译器,使它编译samp.c,并生成一个可执行文件samp.exe。要运行程序,只需键入samp。如果您使用的是其他编译器或其他开发系统,阅读并遵循该编译器的指南。当您运行这个程序后,您应该会看到“这是我第一个程序的输出!”的打印了。当您编译这个程序时,到底发生了什么?下面是示意图:HSWC语言编译器如果您键入程序时打错了,它要么不会编译,要么不会运行。如果程序没有编译,或者没有正确地运行,请重新编辑,检查输入的时候是否有误。然后修正错误,重新编译。让我们逐行讲解一下这个示例程序,看看每一行都做了什么(点击这里在新窗口中打开程序):程序以#include开始。这一行将“标准输入输出库(StandardI/Olibrary)”包括进程序之中。使用标准输入输出库您可以完成诸如从键盘(称为“标准输入”)读入数据、向屏幕(称为“标准输出”)写出数据、处理磁盘上的文本文件之类的工作。这是一个极有用的函数库。C拥有大量像stdio一样的函数库,包括字符串、时间和数学函??数库等。函数库就是一个别人写好供我们调用的代码包,它使我们编程变得更加容易(我们在后面讨论函数库)。intmain()这行声明了主函数。所有的C程序都必须包含一个名为main的函数。我们稍后将学习更多关于函数的知识。程序从主函数的第一行开始运行。C语言使用花括号({和})标识一个代码块的开始和结束。本例中构成主函数的代码块包括两行。printf语句将输出的内容送往标准输出设备(对我们而言就是屏幕)。引号中的部分叫做格式字符串,用于表示数据输出时的格式。格式字符串可以包含文字(“这是我第一个程序的输出!”)、回车换行符(n)和标识变量位置的操作符等。如果您使用的是UNIX系统,可以键入man3printf获得printf函数的完整说明文档。其他系统下您可以通过阅读编译器相关的文档来了解printf函数的细节。return0;这行使主函数向运行它的命令行解释器返回错误代码0(表示没有错误)。稍后我们还会继续介绍这一特性。作为程序员,您的程序常常需要“记住”某个数值。比如您的程序要求用户输入一个数,或者它计算出了一个结果,您需要把它保存在某处供以后使用。程序是靠使用变量变量来保存结果的。变量例如:intb;上面这行的意思是说:“我想创建一个可以容纳一个整数的存储空间,名字叫做b。”每个变量都有名字(本例中是b)和类型(本例中是int,表示整型)。您可以用如下语句在b中存储一个值:b=5;您可以用如下语句使用b中保存的值:printf(%d,b);C语言提供了几种标准的变量类型:??int-整型,用于保存整数值float-用于保存浮点值char-用于保存单个字符值,如“m”或“Z”后面我们会看到整型以外其他类型的例子。printf语句语句将要输出的内容送往标准输出设备。对我们而言,标准输出设备一般就是计算机屏幕(虽然您也可以将标准输出重定向到一个文本文件或另一个命令)。下面这个程序将有助于您深入理解printf:#includeintmain(){inta,b,c;a=5;b=7;c=a+b;printf(%d+%d=%d\n,a,b,c);return0;}请录入程序并保存,文件名是add.c。在命令行键入gccadd.c-oadd进行编译,之后再键入add(或./add)运行程序。您会看到输出:“5+7=12”。下面是该程序各行的解释:???inta,b,c;这行声明了三个分别名为a、b和c的整型变量。整型变量用于保存整数。下一行将变量a的值初始化为5。再下一行将变量b的值初始化为7。再下一行将a和b相加,并将结果“赋值”给c。计算机将a中的值(5)和b中的值(7)相加得到结果12,并把新值(12)存入变量c。变量c被赋值12。因此,本行中的“=”称为“赋值运算符”。接下来printf语句会打印“5+7=12”。占位符%d的作用是为输出值占位。本行有三个%d占位符,末尾有三个变量名:a、b和c。C语言将第一个%d和a匹配并替换为5;将第二个%d和b匹配并替换为7;将第三个%d和c匹配并替换为12。然后在屏幕上打印替换结果:“5+7=12”。+、=及空格作为格式字符串的一部分,按程序员指定的顺序自动插入到%d运算符之间。前面的程序很好,但要是如果能从用户那里读入值5和7而不是使用固定的值的话,那就更好了。可以改为下面的程序:#includeintmain(){inta,b,c;printf(输入第一个值:);scanf(%d,printf(输入第二个值:);scanf(%d,c=a+b;printf(%d+%d=%d\n,a,b,c);return0;}以下是程序的执行过程:HSWC语言执行程序示例请按照上例修改原来的程序,然后重新编译和执行并确保它能正常工作。注意scanf和printf都要使用格式字符串(可以键入manscanf获取更多信息)还要注意a和b前面都有一个“&”。。这是C语言中的取地址运算符,它会返回变数的地址(在我们讨论指针之前,这个符号没什么用)。在对单个字符,整数,或者浮点数形式的任何变量做标准输入,以及对结构形式(我们很快就会接触到)的任何变量做标准输入时,您都必须使用&运算符。如果您遗漏了&运算符,您在运行程序时会报错。您可以试试,这样就能看到这种运行错误是什么样子。让我们通过一些变量来完全理解printf。这是最简单的printf声明:printf(您好);它的格式字符串告诉printf把“您好”二字发送到标准输出。对比:printf(您好\n);两者的区别是后者在“您好”后跟一个回车换行,一起送到标准输出。下面这行显示了如何使用printf输出一个变量的值。printf(%d,b)%d是占位符,会在printf语句执行时替换为变量b的值。通常您需要把输出值嵌入到一些文字之中。一种方法是这样:printf(温度是);printf(%d,b);printf(度\n);更简单的方法是这样写:printf(温度是%d度\n,b);一个printf语句中可以使用多个%d占位符:printf(%d+%d=%d\n,a,b,c);在printf语句中,格式字符串包含的操作符操作符数目和后面的变量的数目和类型一定要一致,这操作符一点极为重要。例如,如果格式字符串包含有三个%d操作符,那么格式字符串后面必须紧接正好三个参数,且参数的类型和先后顺序必须和操作符指定的是一样的。使用不同形式的占位符,printf可以打印所有的C标准类型:???int(整数)用%dfloat(浮点数)用%fchar(单个字符)用%c字符串
本文标题:新手上路C语言教程
链接地址:https://www.777doc.com/doc-2390820 .html