第2章 C语言概述

2.1 C语言示例解释

#include

#include<stdio.h> 这一条指令的作用相当于把stdio.h文件的所有内容都输入该行所在的位置。

#include 这行代码是一条预处理指令。C编译器会在编译之前对源代码做一些准备工作,即预处理。有一个C预处理器。

C编译器软件包,都提供stdio.h文件。C程序顶部的信息集合被称为头文件。

C语言不内置输入输出,是因为不是所有程序都会用到I/O包。轻装上阵体现了C语言的哲学。经济使用资源的原则。

函数

函数时C语言程序的基本模块。

C语言一定从main()函数开始执行。()用来识别main()是一个函数。

int
是main()函数的返回类型。表明main()返回的值是整型。

注释

/*
*/ 被这两个符号括起来的部分是程序的注释。写注释是写给读者看的,让别人能明白你的意思。编译器会忽略注释。

另一种注释的表现形式是
/

花括号、函数体和块

花括号把main()函数括起来,简而言之,C函数都使用花括号标记函数体的开始和结束。

声明

声明是C语言最重要的特性之一。

int
num 声明做了两件事,声明了一个名为num的变量;表明了该变量的数据类型是int

int
是 C语言定义的关键字。关键字是语言定义的单词,不能用作其他用途。

num
是 一个标识符,也就是变量、函数或其他实体的名称。

C语言中,所有变量都必须先声明才能使用。变量的声明必须放在块的顶部。其他语句不能再任何声明的前面。

赋值

赋值是C语言的基本操作之一。

C语言通过赋值运算符而不是赋值语句完成赋值操作

printf函数

printf(),括号内的内容是main()函数传递给printf()函数的信息。该信息叫作参数。

return语句

如果遗漏了main()函数中的return语句,程序在运行至最外面的花括号时会返回0。因此可以省略return语句。但是不能再其他有返回值的函数中漏掉它。所以还是强烈建议养成在main()函数中添加return语句的好习惯。可将其看作是统一代码风格。

转义序列
escape sequence

用于代表难以表示或无法输入的字符。

\t
代表tab

\b
代表BackSpace键

占位符
%d

%
用来提醒程序,此处该打印一个变量。d
表明把变量作为十进制整数打印。

2.2
简单程序的结构

程序由一个或多个函数组成,必须有main()函数。

函数由函数头和函数体组成。

函数头包括函数名、传入该函数的信息,函数的返回类型;函数名后面的圆括号可以识别函数。圆括号中可能有空,可能有参数。

函数体被花括号括起来,由一系列语句和声明组成。

2.4
提高程序可读性的技巧

1、有意义的函数名和写注释;

2、用空行分割概念上的多个部分;

3、每条语句各占一行;

分号的作用是告诉程序一条语句在哪里结束、下一条语句在哪里开始。

2.5
进一步使用C

int
feet, fathoms; 这个语句声明了两个变量,变量之间用逗号隔开->多条声明;

2.6
多个函数

函数原型prototype->告知编译器在程序中要使用这个函数

函数调用function
call ->

函数定义
function definition
->函数本身的源代码

函数原型也叫作函数声明

void
表示空的意思,

void
main(void) 第一个void表示没有返回值,第二个void表示不带参数;

函数的执行取决于它在函数中被调用的位置。所有的C程序都从main()开始执行。C的惯例是把main()放在开头,它提供了程序的基本框架。

2.7
调试程序

程序的错误通常叫作bug。

找出并修正错误的过程叫作调试(debug)。

语法错误:编译器会发现并报错;

语义错误:编译器难以发现;

程序状态:程序执行过程中,某给定点上所有变量的集合。相当于是给计算机一个快照。

跟踪程序状态的方法:1、在程序的关键点钟插入printf函数,来见识制定变量值的变化。2、使用调试器debugger,这是一种程序。会让你一步一步运行另一个程序,并检查该程序变量的值。

2.8
关键字和保留标识符

保留标识符,已经被C语言用来指定了某用途和使用权。

如果把关键字用作变量名的话,编译器会将其视为语法错误。

2.9
关键概念

编程是富有挑战性的事情。程序员要具备抽象和逻辑的思维,并谨慎地处理细节问题。

2.10
小结

1、C程序是一个或多个函数组成的。

2、每个程序必须包含一个main()函数,这是程序要调用的第一个函数。

3、简单的函数由函数头和后面的一对花括号组成。花括号中是由声明、语句组成的函数体。

4、C语言中,大部分语句都以分号结尾。

5、声明->为变量创建变量名,标识该变量中储存的数据类型。

6、变量名是一种标识符

7、赋值表达式语句把值赋给变量,或者更一般地说,把值赋给存储空间。

8、函数表达式语句用于调用指定的已命名函数,调用函数执行完毕后,程序会返回到调用函数后面的语句继续执行。

9、语法
是一套规则,用于管理语言中各有效语句组合在一起的方式;

10、语义
是语句要表达的意思,

11、编译器可以检查出语法错误,但是语义的错误只能在编译完后,从程序的行为中表现出来。

12、检查程序是否有语义错误,要跟踪程序的状态,即程序每执行一步后所有变量的值。

13、关键字是
C语言的词汇。

C语言概述之介绍各种基本概念的更多相关文章

  1. Notes 20180506 : Java程序设计语言概述

    2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...

  2. 1-学习前言&C语言概述

    [C语言]01-学习前言&C语言概述 参考自 http://www.cnblogs.com/mjios/archive/2013/03/12/2956508.html#label2 C语言是我 ...

  3. C语言模块化编译介绍

    C语言模块化编译介绍 模块化编程的概念 所谓模块化变成(多文件开发),就是多文件(.c文件)编程,一个.c文件和一个.h文件可以被称为一个模块. 头文件开发的注意事项: 1)头文件中可以和C程序一样引 ...

  4. OpenGL官方教程——着色器语言概述

    OpenGL官方教程——着色器语言概述 OpenGL官方教程——着色器语言概述 可编程图形硬件管线(流水线) 可编程顶点处理器 可编程几何处理器 可编程片元处理器 语言 可编程图形硬件管线(流水线) ...

  5. java基础---java语言概述

    一.计算机编程的两种范型 1.面向过程的模型---具有线性执行特点,认为是代码作用于数据. 2.面向对象的模型---围绕它的数据(即对象)和为这个数据定义的接口来组织程序:实际上是用数据控制代码的访问 ...

  6. 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB

    走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学 ...

  7. 第1章 Java语言概述--HelloWorld--环境搭建

    SE学什么 第1章 Java语言概述 第2章 基本语法 第3章 数组 第4章 面向对象编程(上) 第5章 面向对象编程(中) 第6章 面向对象编程(下) 第7章 异常处理 第8章 枚举类&注解 ...

  8. 大数据技术之_16_Scala学习_01_Scala 语言概述

    第一章 Scala 语言概述1.1 why is Scala 语言?1.2 Scala 语言诞生小故事1.3 Scala 和 Java 以及 jvm 的关系分析图1.4 Scala 语言的特点1.5 ...

  9. C#语言概述

    C#语言概述 一..NET Framework .NET Framework是Windows的一个不可或缺的组件,它包括公共语言运行库(CLR)和类库两部分. CLR是Microsoft的公共语言基础 ...

随机推荐

  1. 理解和正确使用Java中的断言(assert)

    一.语法形式:    Java2在1.4中新增了一个关键字:assert.在程序开发过程中使用它创建一个断言(assertion),它的语法形式有如下所示的两种形式:1.assert conditio ...

  2. Python操作远程机器

    操作远程机器主要使用的有paramiko,WMI(Windows Management Instrumentation),SMBConnection. paramiko paramiko使用SSH2协 ...

  3. 全局事务/分布式事务 (Global Transaction/ A distributed transaction)之我见

    这里参考的是Oracle对于XA的支持,其他的应该雷同吧... 1个分布式事务由多个行为在不同的数据库上执行,1个分布式事务的执行成功意味着相关数据库上的行为执行均成功.“XA协定”(http://w ...

  4. PHP中几种加密形式

    1.Md5加密和Crypt都是单向加密: 登陆时把登录密码转为md5值,然后和数据库中的进行比较. 其中crypt中的盐值支持多种: 以CRYPT_STD_DES是以/0-9A-Za-z/中的两个字符 ...

  5. 使用myeclipse自动导入hibernate3的jar包,如何关联hibernate源码的解决办法

    1.在网上找了好久,今天终于解决了,如果你的myeclipse自动生成的添加hibernate3jar包时,依靠通常的方法是无法关联其相应版本的源代码的,就是你在编写代码是,按住ctrl + hibe ...

  6. day70-oracle 13-数据字典

    实际上数据字典它就是表.这种表比较特殊,给它取个名字叫做数据字典.既然是表的话,它就是要存数据的.它存的是这些数据:用户有哪些权限,用户创建了哪些表,用户能够访问哪些表,这种信息跟员工表.部门表没有关 ...

  7. cmake利用toolchain.cmake生成makefile之后,make生成静态库失败问题

    问题描述 利用toolchian.cmake设置好编译器后,利用make指令生成静态库,出现以下问题 Error running link command: No such file or direc ...

  8. c++ public protected private 继承

    1:访问控制 1.1 public 这类型成员可以被类本身函数访问,也可以被外部创建的类对象调用.子类对象与子类内部可以访问 1.2 protected类型成员,只能被类本身函数访问.外部创建的类对象 ...

  9. 100741A Queries

    传送门 题目 Mathematicians are interesting (sometimes, I would say, even crazy) people. For example, my f ...

  10. Django框架 之 模板语言

    Django框架 之 模板语言 浏览目录 标签 过滤器 一.标签 Tags 1.普通变量 普通变量用{{ }} 变量名由数字.字母.下划线组成 点.在模板语言中用来获取对象相应的属性值 示例: 1 2 ...