第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. eclipse安卓模拟器Failed to install on device 'emulator-5554': timeout处理方案

    我们在用模拟器调试的时候,经常会出现Failed to install on device 'emulator-5554': timeout这个错误.其实就是有些虚拟器在部署的时候时间过于长.系统就认 ...

  2. 9-EasyNetQ之基于主题的路由

    RabbitMQ有一个很酷的功能,基于主题的路由,这个功能允许订阅者基于多个条件去过滤消息.一个主题是由点号分隔的单词列表,随消息一同发布.例如:"stock.usd.nyse" ...

  3. eclipse 报错:GC overhead limit exceeded

    还是eclipse内存问题 修改eclipse.ini -Xms512m -Xmx1024m 必要的情况下, 添加 -XX:MaxPermSize=1024M  表示在编译文件时一直占有最大内存

  4. Python单例模式剖析

    在聊这之前我们首先要明确的是,单例模式在实际中的意义以及在python中具有实现的价值? 当前,相信有很多人支持单例模式,也有不少人反对,尤其是在python中,目前依旧具有很大的争议性.我们要在评论 ...

  5. MSSQL 日期查询 包含NULL值

    方一: 以下做法保证数据里面没有NULL值 '') '') '') '') exec sp_executesql N'select ide_code as ''系统编号'',name as ''申请专 ...

  6. springboot启动过程(2)-run方法

    1 springApplication的run run方法主要是用于创造spring容器ConfigurableApplicationContext对象. public ConfigurableApp ...

  7. 用StringBuilder来实现经典的反转问题

    import java.util.Scanner; public class Practise03 { public static void main(String[] args) { //键盘录入一 ...

  8. cakephp静态资源404

    location ~ /\.(css|js|woff|ttf|gif|jpg|jpeg|png|bmp|swf) { rewrite ^/$/(.*)$ /$/app/webroot/$ last; ...

  9. SDUT 2129 树结构练习——判断给定森林中有多少棵树

    树结构练习——判断给定森林中有多少棵树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description  众 ...

  10. java全栈day06---数组的练习 冒泡排序

    水仙花练习功能实现 * A: 水仙花练习功能实现 * a: 题目分析 * 明确什么样的数就是水仙花数.水仙花数是指一个3位数(100-999之间),其每位数字立方之和等于该3位数本身. 如153 = ...