1.1程序实例

//first.程序
#include <stdio.h>
int main()
{
int num;
num = 1; printf("I am a simple ");
printf("computer.\n");
printf("My favorate number is %d, because it is first.\n",num);
return 0;
}

2.2实例说明

1.快速简介

  #include <stdio.h> <——包含另一个文件

  该行告诉编译器包含文件 stdio.h 中的全部信息。文件 stdio.h 是所有C语言编译包的一个标准部分。这个文件对关键字输入和显示输出提供支持。

  int main(void) <----函数名

  圆括号表示mian()是一个函数的名字。int表示mian()函数返回一个整数,而void表示main()函数不接受任何参数。

2.第二遍 程序细节

  这是程序的第一行。该语句的作用相当于宁在文件中该行所在的位置键入了文件 stdio.h 的完整内容。实际上,它是一种剪切和粘贴操作,这样可以方便地在多个程序间共享共用的信息。

  #include语句是C预处理器指令的一个例子。

  stdio.h文件作为所有C编译包的一部分提供,它包含了有关是关输入和输出函数的信息以供编译器使用。这个名字代表标准输入输出头文件(standard input/output header)。出现在文件顶部的信息集合为头,C实现通常都带有许多头文件。

  最重要的是头文件包括了建立最终的可执行程序时编译器需要用到的信息。例如,他们可以定义常量,或者说明函数名以及该函数如何使用。但是函数的实际代码被包含在一个预编译代码的库文件中,而不是在头文件中。编译器的连接部分负责找到所需要的库代码。头文件指引编译器把您的程序正确地组合在一起。

  为什么不内置输入输出语句?

并非所有的程序都要用到I/O(输入/输出)包,并且C语言的一个基本设计原则是避免不必要的成分。经济地使用资源的颜色使得C语言在嵌入式编程中非常流行。#include甚至不是C语言的语句!第一列中的#符号表明这一行是在编译器接手之前由C预处理器处理的语句。

2.main()函数

  int main(void)

  一个C程序(不考虑例外)总是从被称为main()的函数开始执行的。

  int指明了main()函数的返回值类型。这意味着main()函数返回值的类型是整数。返回给操作系统。

3.注释

1.//

2./* */

/*

*/

4.花括号、程序体和代码块

  所有的C函数都使用花括号来表示函数体的开始与结束。它们的存在是必不可少的

5.声明

  int num;

  这个特殊的例子声明两件事。第一,在函数中您有一个名为num的变量。第二,int说明num是一个整数,编译器使用这个信息为变量num在内存中分配一个合适存储空间。

  本例中num是一个标识符,也就是您为一个变量、函数或其他实体所选的名字。这样该声明把一个特殊的标识符和计算机内存中的一个特殊的位置联系起来,同时确定了该位置存储的信息类型(也即数据类型)。

  您可能有三个问题?数据类型是什么?可以选择什么样的名字?为什么必须对变量进行声明?

①.数据类型

  C语言可以处理多个数据类型。把一个变量声明为整数或字符类型是计算机正确存储、捕获和解释该数据类型的基本前提。

②.名字的选择

  尽量使用有意义的变量名(例如数羊sheep_count)。若名字无法表达清楚,可以加注释。

  可供使用的字符有字母、数字、下划线。第一个字符不能是数字。字母区分大小写。

  操作系统和C库通常用一个或两个下划线开始的名字,最好避免使用。

③.声明变量的4点好处

  a.把所有变量放在一起,使读者更容易掌握程序的内容。配合有意义的变量名更好。

  b.在编写程序前,考虑一下需要声明的变量会促使程序员做一些计划工作。

  c.声明变量可以帮助避免程序中出现一类很难发现的细微错误,即变量名的错误拼写。

  d.如果没有声明所有变量,将不能编译程序。

  C99允许变量声明分散放置,如果在变量赋值之前声明变量,就不会忘记给变量赋值。

6.赋值

  num = 1;

  int num;语句在内存中为变量num分配了空间,该赋值语句在那个地方为变量存储了一个值。

7.printf()函数

  printf("My favorate number is %d.\n");

  圆括号表明printf是一个函数名。圆括号中包括的内容是从函数main()传递到函数printf()的信息。

  printf()函数如何处理参数?程序将识别两个双引号之间的内容并把他们显示在屏幕上。

  只需键入函数名字,把所需的参数放进圆括号里。当程序执行到这一行时,控制权将转给该函数(这里是printf())。当函数完成了它所要做的工作,控制权将返回给原来的函数(调用函数),这里是main()。

  %d是一个占位符,其作用是指出输出num值的位置。%告诉程序把一个变量在这个位置输出,d告诉程序将输出一个十进制整数变量。实际上,printf()中f暗示着这是一种格式化(formating)的输出函数。

8.return语句

2.3一个简单程序的结构

  函数头包括预处理语句和函数名。可以通过圆括号识别一个函数名,圆括号里面可能是空的。而函数体位于花括号中并由一系列语句组成,每个语句以一个分号结束。

2.4使程序可读的技巧

  1.选择有意义的变量名和使用注释。

  2.使用空行分割一个函数的概念上的多个部分。

  3.每个语句用一行     

2.5多个函数

  C的惯例是把main()函数放在开头,因为它通常微程序提供了最基本的框架。

2.6调试

  1.语法错误

  2.语义错误

  3.程序状态

  跟踪程序状态的方法之一:逐步执行程序

  另一种查找语义错误的方法:在程序的几个关键点处加入额外的printf()语句以监视所选变量的值。

  检查程序状态的第三种方法是使用调试器。

2.7C语言的关键字和保留字

第一章C语言概述的更多相关文章

  1. javaSE习题 第一章 JAVA语言概述

    转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...

  2. [编程笔记]第一章 C语言概述

    //C语言学习笔记 第一讲 C语言概述 第二讲 基本编程知识 第三讲 运算符和表达式 第四讲 流程控制 第五讲 函数 第六讲 数组 第七讲 指针 第八讲 变量的作用域和存储方式 第九讲 拓展类型 第十 ...

  3. 第一章 Java语言概述

    1.人机交互有两种方法:一种是图形化界面,一种是命令行方式 2.如何打开命令行:开始-在运行命令行中输入cmd 3.常用的DOS命令: dir(directory):列出当前目录下文件及文件夹 md( ...

  4. 第一章 Java语言概述2

    一.编写第一个Java应用程序 1.下载.安装JDK 官方网址:www.oracle.com java.sun.com 安装JDK 傻瓜式安装,下一步即可. 建议:安装路径不要有中文或者特殊符号,如空 ...

  5. 第一章 Java语言概述1

    1.人机交互有两种方法:一种是图形化界面,一种是命令行方式 2.如何打开命令行:开始-在运行命令行中输入cmd 3.常用的DOS命令: dir(directory):列出当前目录下文件及文件夹 md( ...

  6. 疯狂java——第一章 java语言概述与开发环境

    J2ME: 主要用于控制移动设备和信息家电等有限存储的设备. J2SE: 整个java技术的核心和基础,它是J2ME和J2EE编程的基础. J2EE: Java技术中应用最广泛的部分,J2EE提供了企 ...

  7. 第一章. ActionScript 语言基础

    第一章. ActionScript 语言基础 1.0. ActionScript 3.0 Cookbook 概述 1.1. 新建一个 ActionScript project 1.2. 自己定义应用程 ...

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

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

  9. 第一章.C语言简介

    C语言第一章 C语言简介   目录 一.C语言介绍 二.C语言特点 三.Hello World 四.转义符 五.占位符 六.俄罗斯方块游戏 七.文件下载 一.C语言介绍 C是一种通用的编程语言,广泛用 ...

  10. 《驾驭Core Data》 第一章 Core Data概述

    <驾驭Core Data>系列教程综合了<Core Data for iOS>,<Learning Core Data for iOS>,<Core Data ...

随机推荐

  1. 使用excel生成多条sql语句

    前提: excel 表里有2列数据,现在要每一列 生成一个sql 语句,应用自定义字符 在第三行单元格里面写入:="zdy"&A2&"zdy"& ...

  2. 自定义go语言日志输出

    自定义输出符合下列需求: 1.含两类日志输出方式:调试模式下输出到控制台:生产环境输出到日志文件 2.调用不同的函数/方法构造不同的输出方式,后续只需调用日志级别对应的函数即可输出该级别日志 工具构造 ...

  3. 你不知道的JavaScript--作用域

                                                              用简单的代码 展示代码的魅力 1.在浏览器里,在全局范围内,this等价于windo ...

  4. Redis集群(主从复制)

    主从复制主从复制原理 Redis集群中有很多Redis服务器,这些Reids服务器分为主服务器和从服务器. 从服务器会向主服务器发送命令:SYNC命令. 主服务器接收到SYNC命令后,开始执行GBSA ...

  5. Ajax同步和异步的区别,如何解决跨域的问题

    同步的概念应该是来自于OS中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式),同步强调的是顺序性,谁先谁后,异步则不存在这种顺序性. 同步:浏览器访问服务器请求,用 ...

  6. loadrunner 11

    1  环境windows server 2012  2019 的.net 时, 服务器管理器--仪表板--勾选.net后报错? 其中一个办法就是将服务器临时联网,就能安装成功. 2   联机时 提示如 ...

  7. SpringBoot加载相关注解

    springBoot加载 @Configuration 表明该类是一个配置类常常配合@Bean使用,让容器管理对象 @Configuration(proxyBeanMethods = true) pr ...

  8. MLR算法双面网络时钟

    MLR算法双面网络时钟------专业LED时钟厂家![点击进入] MLR算法双面网络时钟 NTP电子时钟功能说明: 双面NTP电子时钟采用独特结构设计,可根据客户要求订制显示布局:年.月.日.时.分 ...

  9. 如何解决7z: command not found问题

    7z是一种常见的压缩文件格式,如果你想要压缩或解压缩7z文件,你需要在你的系统上安装p7zip和p7zip-full.但是,有时候你会发现当你尝试运行7z或7za命令时,它会显示"bash: ...

  10. 关于uniapp的事件监听,使用uni.$once和uni.$on导致的重复监听

    最近写项目的时候遇到个问题,就是在使用uniapp的事件监听器时出现重复监听问题.一开始我是用的uni.$on去监听事件,然后出现了重复的触发监听.百度了下,官方提示单次触发的建议使用uni.$onc ...