前言

再次着手去整理C语言相关的知识,没想到已经过去了四年了。还记得带着高考后不甘的冲劲的自己,在面对这个大学第一门专业课时的努力和与之带来的成就感….或许还有随后的自负。

不过总之,朝花夕拾,或许你在寻觅,而此刻的我正在拾取,不多废话了,让我们一起来学习/重温“C语言程序设计”

相信大部分阅读这篇博客的读者都是冲着学习基础程序设计语言C而来的,在这里请宽恕我假定各位都是编程语言入门的新人,那么一本参考书籍便是很关键的了。

无论网络上形形色色的人各种各样的评价如何,我还是推荐这本谭先生的C程序设计,极少的勘误,完整的代码,朴素严谨,但是又形象丰富,通俗易懂的内容便是我推荐的理由。或许更多与我而言是那些个国庆假期夜晚,挑灯夜读自己学习编程语言的快乐,我承认我是有自私之情在其中的,但这并不妨碍这是一本优秀的入门级C语言参考书籍。

C程序设计 谭浩强著

不过,还有一个比较关键的一点便是,本篇博客意旨让阅读者快速学习/整理回顾C语言编程基础知识,应付代码编辑等实际上手内容,而非全面的应试卷面等知识性内容。

那么,就以我曾经引以为傲的C语言,作为本知识内容博客的开始,这也是一种不错的开头呢。

目录

  • 前言
  • 第一章 编程语言程序设计综述
  • 第二章 顺序逻辑程序设计与C语言基础
  • 第三章 选择逻辑与循环逻辑程序设计
  • 第四章 数组以及多维变量的批处理/初识暴力枚举
  • 第五章 函数以及其推广到的递归嵌套
  • 第六章 初识内存操作/指针以及其使用
  • 第七章 从自定义函数到自定义数据类型/结构体与动态链表
  • 第八章 用C语言程序对文件进行输入输出读取
  • 最终章 C语言程序设计基础的附加内容以及一些算法/编程思想的总结

第一章 编程语言程序设计综述

1.1什么是计算机程序?

当然,在这里并不会去深入去讲这些“废话”,更不会从0101开始再去讲一遍计算机语言的发展史,不过不要小瞧这些“废话”,许多的大学知识都是从1开始向你娓娓道来的,但是有太多自负的学子因为开始的1而瞧不起一门学科,最后为了追上最终的9而付出了太多的代价。所以,笔者在这里真诚的希望,每一个读到这里的你,都不要因为最开始的1而懈怠了走上学习的台阶。

这里直接下结论,计算机硬件由程序控制,而程序=算法+数据结构

而算法与数据结构一般由编程语言的方式去体现,编程语言在如今的主流环境中分为解释性语言与编译性语言,我们现在要讲的C语言,是一门编译性语言,其具体展现方式可以理解为编译性语言只需要在运行时候编译一次,解释性语言每一步/每一行都在编译语言,在这里仅供了解,可以在计算机专业课程《编译原理》中深入进行探究。

C语言系列曾经风靡一时,甚至Java等现在热门的语言都是来源于对C语言的拓展,但是就目前而言,虽然C语言与C++仍然有其擅长的领域与优势,其热门度,使用率都在逐渐下降,兴起的是更加功能强大的或简明干要的Java与Python。

来简单看一个的C语言程序代码,在下代码文中“//”代表注释,即//后的文字计算机是不会考虑在内的,这些文字性注释是给编程的程序员看的,在很多不同语言中都有多种注释方法,C语言中//代表单行注释,即只有在//后这一行的内容程序不会识别,/**/代表多行注释,/*即只要包含在这个符号区间之内的内容,程序都不会识别,比如笔者此段文字*/

#include <stdio.h>
//这是编译预处理指令,表示引用了“stdio.h”这一库函数,这也是C语言的基础库函数
int main( )
//定义主函数,每一个C语言程序必然有一个主函数main,程序将从主函数入口开始,从返回值结束,你有时也可以看到一些void开头的main函数,即可观察该函数没有返回值
{
//函数开始的标志,在C语言中,一个函数需要用花括号{}包起来,否则程序将无法识别这个函数代码文字具体在那些范围
printf ("This is a C program.\n");
//输出所指定的一行信息,这是C语言常见的输出函数方式,pirntf();其中括号内为输出内容,引号内为按照所写文字输出字符,其中,假如%d或\n等意为输出字符变量与换行,这些在之后会详细介绍
return 0;
//函数执行完毕时返回函数值О,代表main函数运行到此结束,若你在一个范例代码中没有找到return 0;可以看看程序是否是void main声明的,有关函数的声明在函数章节会单独去讲。
}
//函数结束的标志,在C语言中,一个函数需要用花括号{}包起来,否则程序将无法识别这个函数代码文字具体在那些范围

上述代码来自谭浩强先生的C程序设计第一章的简单代码,有兴趣的朋友可以找到原书,之后还有其他功能更丰富的简单代码与详细解释,在这里不做赘述,若你刚刚入手C语言且 对此感兴趣,强烈推荐去看一看。

C语言程序由一个或多个源程序文件组成,而函数是C程序的重要组成部分,一个C语言程序必须有且仅有一个main函数,一个函数由函数首与函数体构成,且程序总是从main函数开始执行的,每一个数据声明和语句的最后必须要有一个分号;

C语言本身不提供输入输出语句,一个良好的程序代码应当包含注释。

既然我说编程语言是去体现算法与数据结构的,那么

1.2“算法”与“数据结构”又是什么?

“算法是程序的灵魂”,这句话的解释对于我而言太过抽象,要我说,程序是用来解决问题的,而算法就是如何解决这些问题方法的具现化。若你是大一或者高中的学生,希望你还记得高中数学中的“流程图”这一简单又好理解的知识点,其实所谓流程图,就是一种算法,即“解决这些问题方法的具现化”,而计算机的中的算法,即是用代码展现流程图中所需要展现的内容,并让计算机去运行它即可。

“数据结构是对数据的描述”,这句话反倒更加抽象,要我说,数据结构就是对数据存取方法的约束,当你初步接触程序设计时,你往往只需要存取个位数或略多的数据,所以单一的变量类型声明就够用了。

作为一个程序设计人员,算法,数据结构,程序设计方法以及语言工具都是气所应该具备的知识。

简单来说,算法有四个特点需要铭记

第二章 顺序逻辑程序设计与C语言基础

第三章 选择逻辑与循环逻辑程序设计

第四章 数组以及多维变量的批处理/初识暴力枚举

第五章 函数以及其推广到的递归嵌套

第六章 初识内存操作/指针以及其使用

第七章 从自定义函数到自定义数据类型/结构体与动态链表

第八章 用C语言程序对文件进行输入输出读取

第九章 终章 C语言程序设计入门的附加内容以及一些算法/编程思想的总结