1.简单C语言示例

2.示例解释

快速概要
程序细节

3.简单程序的结构

4.提高程序可读性的技巧

5.进一步使用C

程序说明
多条声明
乘法
打印多个值

6.多个函数

7小结

1.简单C语言示例

#include<stdio.h>                /*引入头文件*/
int main(void)                   /*一个简单的C程序*/
{int num;                     /*定义个名字叫做num的变量*/num = 0;                     /*给num赋一个值*/printf("Hello World!\n");    /*调用printf()函数*/printf("The first number is %d", num);return 0;
}


2.示例解释

快速概要:
#include<stdio.h>
包含stdio.h文件,这是C编译软件包的标准部分,提供键盘输入和屏幕输出,该代码必不可少!!!
int main(void)
圆括号表明main()是一个函数名
int表明main()函数返回一个整数
viod表明main()不带任何参数
C程序规定一个程序中有一个或多个函数,他们是C程序的基本模块,但必须有且只有一个main()函数,因为C程序的执行将从main函数开始,
到main函数结束而停止
//单行注释
/*多行注释*/
{函数定义开始
int num;
声明一个整型变量num
num = 0;
把0赋给名为num的变量
printf("Hello World!\n");
调用一个printf()函数,将括号内的内容打印出来
printf("The first number is %d", num);
把num的值1内嵌在用双引号括起来的内容中一并打印,%d表示在%d的位置上以数字的形式输出num的值
return 0;
结束main()函数的要求,一般必不可少!!!
}
表示函数定义结束
程序细节:
  • 1.include指令和头文件
#include <stdio.h>

这是程序的第一行,它的作用相当于把stdio.h文件中的所 有内容都输入该行所在的位置。
#include <stdio.h>是一条C预处理器指令。通 常,C编译器在编译前会对源代码做一些准备工作,即预处理 。
所有的C编译器软件包都提供stdio.h文件。该文件中包含了供编译器使 用的输入和输出函数(如:printf())信息。该文件名的含义是标准输入/输出头文件。通常,在C程序顶部的信息集合被称为头文件(header),简而言之,头文 件帮助编译器把你的程序正确地组合在一起。
所以,总结一句话:第一行#include <stdio.h>必不可少!!!

  • 2.main()函数
int main(void)

C程序一定从main()函数开始执行(目前 不必考虑例外的情况),除了main()函数,你可以任意命名其他函数。
main()函数必须是开始的函数!!!
int 是整型
void是表示不加任何参数
所以,总结一句话:main()函数必不可少!!!

  • 3.注释
    这里就不详细介绍了
//单行注释
/*
多行注释
*/
  • 4.花括号、函数体和块
    这里也不详细介绍了,和Python的差不多,函数所必备~
    注:只有花括号{ }能起这种作用,圆括号( )和方括号[ ]都不行

  • 5.声明

int num;

也就是声明变量,但是值得注意的是,C语言的声明变量的同时必须也声明它的变量类型(如整数、字符和浮点数。把变量声明 为整型、浮点型或字符类型,计算机才能正确地储存、读取和解释数据,否则就是错误的代码)。
变量名:可以用小写字母、大写字母、数字和下划线来命名。而且,名称 的第1个字符必须是字符或下划线,不能是数字或非字符或下划线(这里简单列举几个非字符或下划线的!、@、#、$、%、^、&、*、(、)、+、=等等)。
注:C语言的名称区分大小写
注:如果要声明变量,应该声明在何处?前面提到过,C99之前的标准要求 把声明都置于块的顶部,这样规定的好处是:把声明放在一起更容易理解程 序的用途。C99 允许在需要时才声明变量,这样做的好处是:在给变量赋值 之前声明变量,就不会忘记给变量赋值。但是实际上,许多编译器都还不支 持C99(现在大部分都支持啦)。

  • 6.赋值
num = 0;

这个也不具体介绍啦~

  • 7.printf()函数
printf("The first number is %d\n", num);

这里我也不多做介绍,和Python里的print()差不多
\n:换行
参数中的%d被数字0代替了,而0就是变量num的值。这里的%d相当于是一个占位符。
%提醒 程序,要在该处打印一个变量,d表明把变量作为十进制整数打印。
printf()函数名中的f提醒用户,这是一种格式化打印函数。printf()函数有多种打印 变量的格式,包括小数和十六进制整数。

  • 8.return语句
return 0;

int main(void)中的int表明 main()函数应返回一个整数。C标准要求main()这样做。有返回值的C函数要 有return语句。该语句以return关键字开始,后面是待返回的值,并以分号结尾。如果遗漏 main()函数中的 return 语句,程序在运行至最外面的右花括号(})时会返回0。因此,可以省略main()函数末尾的return语句。但是,不要在其他有返回值的函数中漏掉它。
最后,强烈建议读者养成在 main()函数中 保留 return 语句的好习惯。在这种情况下,可将其看作是统一代码风格。但对于某些操作系统(包括Linux和UNIX),return语句有实际的用途。

3.简单程序的结构

程序由一个或多个函数组成,必须有 main()函数。函数由函数头和函数体组 成。函数头包括函数名、传入该函数的信息类型和函数的返回类型。通过函 数名后的圆括号可识别出函数,圆括号里可能为空,可能有参数。函数体被花括号括起来,由一系列语句、声明组成,如下图所示。前面的示例中,有一条声明,声明了程序使用的变量名和类型。然后是一条赋值表达式语句,变量被赋给一个值。接下来是2条printf()语句,调用printf()函数2次。 最后,main()以return语句结束。


简而言之,一个简单的C程序的格式如下:

#include <stdio.h>
int main(void)
{语句
return 0;
}
(大部分语句都以分号结尾)

4.提高程序可读性的技巧

不具体介绍了,请看下图:


5.进一步使用C

//fathm_ft.c -- 把2英寻转换成英尺
#include <stdio.h>
int main(void)
{int feet, fathoms;
fathoms = 2;
feet = 6 * fathoms;
printf("There are %d feet in %d fathoms!\n", feet, fathoms);
printf("Yes, I said %d feet!\n", 6 * fathoms);
return 0;
}
程序说明:

程序在开始处有一条注释,给出了文件名和程序的目的。写这种程序说明,很简单、不费时,而且在以后浏览或打印程序时很有帮助。

多条声明

接下来,程序在一条声明中声明了两个变量,而不是一个变量。为此, 要在声明中用逗号隔开两个变量(feet和fathoms)也就是说

int feet,fathoms;
和
int feet;
int fathoms;
等价
乘法

不具体介绍了

打印多个值

结果:

There are 12 feet in 2 fathoms!
Yes, I said 12 feet!

程序的第1个printf()中进行了两次替换。双引号号后面的第1个变量 feet替换了双引号中的第1个%d;双引号号后面的第2个变量fathoms替换了双引号中的第2个%d。
注意,待输出的变量列于双引号的后面。还要注意,变量之间要用逗号隔开。

第2个printf()函数说明待打印的值不一定是变量,只要可求值得出合适 类型值的项即可,如6 *fathoms。

注:这里的代码只是把英寻转换成英寸程序的核心部分。

6.多个函数

//* two_func.c -- 一个文件中包含两个函数 */
#include <stdio.h>
void butler(void); /* ANSI/ISO C函数原型 */
int main(void)
{printf("I will summon the butler function.\n");
butler();
printf("Yes. Bring me some tea and writeable DVDs.\n");
return 0;
}
void butler(void) /* 函数定义开始 */
{printf("You rang, sir?\n");
}

输出如下:

I will summon the butler function.
You rang, sir?
Yes.Bring me some tea and writeable DVDs.

butler()函数在程序中出现了3次。第1次是函数原型,告知编译器在程序中要使用该函数;第2次以函数调用的形式出现在 main()中;最后一次出现在函数定义中,函数定义即是函数本身的源代码。下面逐一分析:

C90标准新增了函数原型,旧式的编译器可能无法识别(稍后我们将介绍,如果使用这种编译器应该怎么做)。函数原型是一种声明形式,告知编译器正在使用某函数,因此函数原型也被称为函数声明函数原型还指明了函数的属性。例如,butler()函数原型中的 第1个void表明,butler()函数没有返回值(通常,被调函数会向主调函数返回一个值,但是bulter()函数没有)。第2个void(butler(void)中的 void)的意思是 butler()函数不带参数。因此,当编译器运行至此,会检查butler()是否使用得当。注意,void在这里的意思是“空的”,而不是“无效”。

早期的C语言支持一种更简单的函数声明,只需指定返回类型,不用描述参数:void butler();
早期的C代码中的函数声明就类似上面这样,不是现在的函数原型。 C90、C99 和C11 标准都承认旧版本的形式,但是也表明了会逐渐淘汰这种过时的写法。如果要使用以前写的C代码,就需要把旧式声明转换成函数原型。
接下来我们继续分析程序。在main()中调用 butler()很简单,写出函数名和圆括号即可。当butler()执行完毕后,程序会继续执行main()中的下一条语句

程序的最后部分是butler()函数的定义,其形式和main()相同,都包含函数头和用花括号括起来的函数体。函数头重述了函数原型的信息:bulter()不带任何参数,且没有返回值。如果使用老式编译器,请去掉圆括号中的 void。

这里要注意,何时执行 butler()函数取决于它在 main()中被调用的位置,而不是butler()的定义在文件中的位置。例如,把butler()函数的定义放在main()定义之前,不会改变程序的执行顺序, butler()函数仍然在两次printf()调用之间被调用。记住,无论main()在程序文件处于什么位置,所有的C程序都从main()开始执行。但是,C的惯例是把main()放在开头,因为它提供了程序的基本框架。
就像下面的代码一样,它最后的输出值和上面的输出值一模一样:
注意又两行一样的void butler(void),有分号的是函数模型(通俗来说就是声明函数模型),没有分号的是定义函数。虽然声明函数模型没有也能成功,但我们还是要按标准做事!!!

#include <stdio.h>
void butler(void); /* ANSI/ISO C函数原型 */
void butler(void) /* 函数定义开始 */
{printf("You rang, sir?\n");
}
int main(void)
{printf("I will summon the butler function.\n");butler();printf("Yes. Bring me some tea and writeable DVDs.\n");return 0;
}

C标准建议要为程序中用到的所有函数提供函数原型。标准include文 件(包含文件)为标准库函数提供了函数原型。例如,在C标准中,stdio.h文件包含了printf()的函数原型。

7.小结

C程序由一个或多个C函数组成。每个C程序必须包含一个main()函数, 这是C程序要调用的第1个函数。简单的函数由函数头和后面的一对花括号组成,花括号中是由声明、语句组成的函数体。
在C语言中,大部分语句都以分号结尾。声明为变量创建变量名和标识 该变量中储存的数据类型。变量名是一种标识符。赋值表达式语句把值赋给变量,或者更一般地说,把值赋给存储空间。函数表达式语句用于调用指定的已命名函数。调用函数执行完毕后,程序会返回到函数调用后面的语句继续执行。
printf()函数用于输出想要表达的内容和变量的值。
最后,关键字是C语言的词汇。

C Primer Plus(第六版):C语言概述相关推荐

  1. 深夜里学妹竟然问我会不会C?我直接把这篇文章甩她脸上(C Primer Plus 第六版基础整合)

    C Primer Plus 第六版 前言 第一章 初识C语言 一.C语言的起源 二.C语言的应用 三.C语言的特点 四.编译的过程 五.编码机制 1.简述 2.完成机制 六.在UNIX系统上使用C 七 ...

  2. C++ Primer Plus第六版第六章编程练习 第4题, 加入Benevolent Order of Programmer后,在BOP大会上

    /*************************************************************************************************** ...

  3. C++ Primer Plus 第六版 所有章节课后编程练习答案

    我的独立博客地址:www.blog4jimmy.com,欢迎大家关注 下面的是C++ Primer Plus 第六版所有章节的课后编程练习的答案,都是博主自己写的,有不对的地方请大家留言指出讨论讨论 ...

  4. C Primer Plus第六版(中文版)编程练习答案(完美修订版)汇总

    //本文是博主编写的C Primer Plus第六版(中文版)编程练习答案的所有链接; //使用超链接汇总于此,若是有用请点赞收藏并分享给他人; C Primer Plus 第六版(中文版)第二章(完 ...

  5. C primer plus(第六版)第十一章源代码

    C primer plus(第六版)第十一章源代码 /* 11.1 */ #include<stdio.h> #define MSG "I am a symbolic strin ...

  6. c语言编译器能不能找出逻辑错误,《C Primer Plus》- 第二章 C语言概述

    本笔记写于2020年1月27日. 本系列文章参考的是<C Primer Plus>(第六版),其中里面会有笔者自己的相关补充. 以下示例均运行于macOS Catalina 10.15.2 ...

  7. C Primer Plus 第02章 C语言概述 学习笔记及复习题、编程题解答

    第二章 C语言概述 1. 解析第一个C程序 一个基本的程序结构包含如下部分: #include<stdio.h> // 包含另一个文件,C编译器软件包的标准部分,提供键盘输入和屏幕输出的支 ...

  8. 《C Primer Plus》第二章——C语言概述(程序示例与解释,提高程序可读性,函数的定义与使用,调试,关键字,复习题与编程练习)

    文章目录 第二章-C语言概述 本章内容 简单的C程序示例 示例解释 快速概要 程序细节 简单程序的结构 提高程序可读性的技巧 进一步使用C 多个函数 调试程序 语法错误 语义错误 程序状态 关键字和保 ...

  9. c语言第六版第四章答案,C primer plus 第六版 第6版 004章 第四章 编程 练习 答案 中文...

    第四章 编程练习 1.编写一个程序,提示用户输入名和姓,然后以『名,姓』的格式打印出来. char name[40]; char family[40]; printf("请输入名和姓:\n& ...

最新文章

  1. 如何向学妹解释在地址栏中输入网址后发生了什么?
  2. python web-Web开发
  3. 全文检索引擎Solr系列——Solr核心概念、配置文件
  4. 分析解决Java运行时异常
  5. springboot中使用规则引擎Drools
  6. VTK:图像拉普拉斯算子用法实战
  7. python发送邮件-实操记录-发送一封普通的邮箱
  8. mysql ubuntu 注意点
  9. android 查找所有dialog_android 布局文件layout分组的简单使用
  10. 网易游戏回应裁员 10%;字节跳动秘密研发手机;iOS 13 beta 5 发布 | 极客头条
  11. 告别复杂WCF扩展 REST过程 ,让他 so easy
  12. python基本代码教程-Python基础
  13. Logistic回归及梯度上升算法
  14. AR标记时虚实融合投影仪和相机的手动标定
  15. ubuntu安装vasp_VASP 软件在ubuntu10.04下的安装过程
  16. 汽车半导体器件AECQ认证测试及相关标准和表格文件
  17. 实验六 接口、继承和多态
  18. Qt QLabel详解
  19. 转载ios开发如何使用Xcode的Targets来管理开发和生产版本的构建
  20. pta 循环——首字母大写

热门文章

  1. 2019.08 me
  2. 如果只看一篇文章弄懂Pfile与spfile,那么这篇就够了……
  3. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题
  4. 【Nutch2.2.1基础教程之3】Nutch2.2.1配置文件
  5. SQL实战篇:SQL解决近X天的问题
  6. 使用PDB调试Python程序的完整实践
  7. dojo中的dojoConfig配置
  8. 手写call,apply和bind(分析三者的用法与区别)
  9. 美国WH在明尼苏达州最大光伏阵列完工
  10. Android Studio Gradle 问题 解决方案