C Primer Plus Chapter 2

Chapter 2 - Introducing C

synopsis

本章节作为introduction主要介绍了C语言的一些基本编程知识,同时用一个基本的printf例子逐行讲解了C语言的经典代码中各部分的作用与规范。另外本章还介绍了诸如printf的用法以及multiple function在编程中的写法,以帮助初学者很快地能够写出自己的第一个简单的C语言程序。

Anatomy of a C Program

C语言从非常专业的分类上来看,其基本组成框架如下
(img)
基本上所有的语句按照数据类型都可以分为 ++这里的我也还是一知半解,等涉及到这一部分了再回来补吧++

  • Keywords 关键词 int main
  • identifiers
  • operators 运算符
  • data 数据
    或者分为
  • declaration Ex: int i
  • assignment Ex: i = 1
  • function Ex: printf("This is a function\n")
  • control ++还不是特别懂这里++
  • null ++我也不是特别懂++

Some basic C rules

  • Comment //
    注释是提高程序可读性的一大功臣,一个优秀程序员写出来的code其中必然会在必要的地方加上各种注释,以方便理解与修改。
    // comment或是/* comment */
    这两者都可以用于书写C语言程序中的注释,前者更为优秀一些,这是因为前者更加简明,不容易在注释这一块引入语句错误(syntax error)。
  • 程序主体 {}
    大括号包裹着的为程序的主体结构block,这个以后会进一步详细讨论
  • %
    这个符号告诉了程序,接下来的地方将会出现一个十进制的int数值,以后会详细说。++好像是叫转义字符来着?++
  • include
    预处理header files,相当于将整个include的文件内容复制粘贴进了本程序,能够很好地协助程序调用函数,实现每个程序的个性化调用函数。
  • return
    在返回值不为void的程序中,必须要有return值,如果不打算利用函数的return值作进一步的计算处理的话,就可以直接return 0。++如果打算用的话则看情况而定++
  • int main(void)
    无论何时,main函数的名字都不能变,并且main函数一般是放在第一个展现在程序中的,子函数一般会跟在main函数中。
    关于main函数中的参数,括号中填void代表不需调用任何数值,照此填写是很好的编程习惯。int则代表main函数返回值为一个int,所以main程序的结尾一般都写上return 0,代表main函数返回了一个值为0的int。

Declaration

int i ; int i, j, k
在程序中,一般都要在程序的开头进行本程序中用到的各种变量的declaration,不进行declaration的变量是不能用的!另一方面,declaration也可以等到用之前再临时进行,但是个人觉得还是放在程序一开始比较好,因为这样的好处是:

  1. 让阅读你代码的人能够快速对你的程序中包含了什么有个基本了解
  2. 让你在正式开始写程序之前通过思索要用到哪些变量declaration来进一步提前设计一下程序

另外,在declaration的过程中其实就可以进行赋值assignment了。
同时可以看到,也可以在一行中进行多个同类型variable的declaration。

Assignment

assignment的基本格式为i = 1,这读作将1的值赋予i,也就是等号右边的值赋予左边。更多详细信息在后面会讲到

printf()*

这是这本书中第一次提到的可调用函数,也是整个编程中最简单和用途最广的一个程序。详见Fucnitons

escape sequence

\n为代表的escape sequence是编程中常用的一个概念,因为在编程中常要用到一些超越字母输入以外的操作,比如调整输入位置,改写编码位置等,这时候就要使用escape sequence了。

debug

程序出错分为两大类:语法错误语义错误,语法错误就是写的不合C语言规范,语义错误则是程序运行后与原设想不同。相比之下,语义错误更难处理。
想要debug,主要有以下几种方法:

  1. track program state假设自己是电脑一样,顺着代码一点一点读下来,然后边读边追踪电脑都在运行些什么,看看和自己编码时想的一不一样这样。
  2. printf method在一些程序运行的节点使用printf来展示一些variable的值,从而分析程序出问题的地方在哪里。
  3. use of degubber使用debugger这种专门用于debug的程序来帮助寻找bug所在。++Xcode里面也有,但是还没有试用过++

Multiple functions

在一个程序中,可以把某部分重复使用的代码单独编为一个函数然后在程序中调用使用,这样可以提高编码效率和形成模块化编程,降低代码维护的成本。
基本要求分为三部分:

  1. prototype
    位置在include等预处理部分,必须在main函数之前。格式就照抄function definition的开头一行就可以。`
  2. function call
    这是在main函数中调用子函数,其实就和调用其他程序一样。
  3. function definition
    这里是子函数的主体,包含了所有的子函数代码,一般放在main函数之后,格式为:
    ''#include<stdio.h>
    ''int Kotori(int kawaii); //prototype
    ''
    ''int main(void)
    ''{
    '' int cute = 19;
    '' cute = Kotori(cute); //function call
    '' printf("Minami Kotori is so cute as %d!\n", cute);
    ''
    '' return 0;
    ''}
    ''
    ''int Kotori(int kawaii) //function definition
    ''{
    '' int minami = 10;
    '' return kawaii + minami;
    ''}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第1章 第一个C程序第2章 C语言基础第3章 变量和数据类型第4章 顺序结构程序设计第5章 条件结构程序设计第6章...
    小狮子365阅读 13,641评论 3 71
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,808评论 3 44
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,384评论 19 139
  • 1、c语言的函数有以下特点: (1)才源程序由函数组成,一个主函数main()+若干其他函数 C程序中的函数类似文...
    滕王阁序阅读 5,202评论 0 6
  • C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的 算法 题目:...
    Poison_19ce阅读 4,918评论 0 0