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. docker 清除redis缓存

    1.仓库容器id: docker  ps 2.进入容器:docker exec -it 容器id  redis-cli 3.清除所有缓存:flushall

  2. 20220305认证第1题 leetcode 1385. 两个数组间的距离值

    给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 . 「距离值」 定义为符合此距离要求的元素数目:对于元素 arr1[i] ,不存在任何元素 arr2[j]  ...

  3. react+antd 导出excel文件(简单数据&多级表头)

    需求: 在基于react+antd进行开发的页面中,实现导出excel报表的功能 实际场景: 1.简单数据:单层表头+数据 2.复杂数据:多层表头+数据 实现方式: 1.简单数据 简单数据的导出使用了 ...

  4. python3 文件上传

    1 # 文件上传方法 2 def upload_files(filepath, url, headers, data): 3 filename = filepath.split('\\')[-1] 4 ...

  5. Esp32 arduino 编译报 hwcrypto/aes.h: No such file or directory 错误

    由于hwcrypto/* 在新版中移动到了 esp32/*. 编译会出现hwcrypto/aes.h: No such file or directory 的错误 解决方案如下: arduino 中E ...

  6. Jmeter、Postman之RSA加密登录接口测试

    方法1:直接用在线加密工具进行加密,得到密码 参考地址 https://www.toolscat.com/decode/rsa 输入公钥和密码,直接加密即可   方法2:postman工具 步骤1:接 ...

  7. 微信支付 easy wechat 使用

    /*微信小程序的配置信息微信商户信息*/ public function __construct(){ parent::__construct(); $this->OrderModel = ne ...

  8. 怎样修改linux内核

    1.先查看linux内核 uname -a 2.打开内核配置文件 sudo vi /etc/default/grub 3.跟新grub文件 sudo update-grub 4.最后重启电脑 sudo ...

  9. ubuntu14.04 网络配置ubuntu14.04 网络配置

    流程分析: 在Ubuntu系统网络设备启动的流程中,会依赖/etc/network/interface的配置文件初始化网络接口,所以直接在/etc/network/interface之中配置好对应的d ...

  10. tortoiseGit配置和git常用命令

    tortoiseGit配置:https://blog.csdn.net/hjwdz2015/article/details/90487554 常用命令 一.git config --global us ...