文档章节

C Primer Plus 第2章 C语言概述

idreamo
 idreamo
发布于 2016/05/07 05:38
字数 1698
阅读 42
收藏 0

2.1一个简单的实例

程序清单2.1 first.c程序

------

#include <stdio.h>

int main()

{

int num;

num=1;

printf("I am a simple");

printf("computer.\n");

printf("My favorite number is %d because it is first . \n",num);

return 0 ;

}

2.2实例说明

2.2.2程序细节

一、#include 指示和头文件

#include <stdio.h>

该句相当于您在文件中该行键入了stdio.h文件的完整内容。这样可以在多个程序间共享公用的信息。

#include 语句是C预处理器指令(preprocessor directive)的一个例子。通常,C编译器在编译前要对源代码 做一些准备工作,这称为预处理。

stdio.h(standard inprt output header)文件作为所有C编译包的一部分提供,包含有关输入和输出的函数信息以供编译器使用。在C中,人们称出现在文件顶部的信息集合为头(header),C实现通常都带有许多头文件。

简言之,头文件指引编译器把您的程序正确的组合到一起。

二、main()函数

一个C程序总是(不考虑例外)从main()函数开始。这个函数是C程序的基本模块。

int指明了main函数的返回类型。

圆括号()包含传递给函数的信息。

三、注释

/*一个简单的程序*/

包含在/**/之间的部分是程序注释,都会被编译器忽略掉。可以单行也可以多行。

//符号内的注释只能限制在单行。

四、花括号、程序体和代码块

{

......

}

通常,所有的C函数都使用花括号来表示函数体的开始和结束。

五、声明

int num;

程序中的这一行叫声明语句。

在C语言中,所有的变量必须在使用前定义。

传统上,C语言要求必须在一个代码块的开始处声明变量,在这之前不允许使用其他语句。

1、数据类型

把一个变量声明为整数类型或字符类型是计算机正确的存储、获取和解释该数据的基本前提。

2、名字的选择

可供使用的字符有大写、小写字母,数字和下划线。第一个字符必须是字母或下划线。

C语言的名字区分大小写。

3、声明变量的好处

A、所有变更放在一起,可以让读者更容易掌握程序的内容。

B、程序编写之前考虑一下需要声明的变量会促使您做一些计划。

C、减少程序中很难发现的一类细微错误。

D、如果没有声明所有变量,将不能编译您的C程序。

六、赋值

num=1;

把1赋给变量num。

前面的int num;语句为变量num分配了内存空间,该赋值语句在那个地方为变量存储了一个值。如果您想的话,以后还可以给num赋另一个值,这就是num为什么叫变量的原因。

赋值语句的顺序是从右到左。

七、printf()函数

printf("I am a simple");

printf("computer.\n");

printf("My favorite number is %d because it is first . \n",num);

圆括号中包括的内容是从main()传递到函数printf()的信息。这样的信息被称为参数(argument),更完整的名称是函数的实际参数(actual argument).

第二行,\n被称为换行符,字符的意思是开始新的一行。

换行符是转义字符的一个例子。

转义字符通常用于代表难于表达或者是无法输入的字符。

\t代表tab键;\b代表退格键;

每个转义字符都是\开始。

第三行,%d是一个占位符,其作用是指示输出num值的位置。

%告诉程序把一个变量在这个位置输出,d告诉程序将输出一个十进制的整数变量。

实际上,printf中的f暗示着这是一种格式化的输出函数。

八、return语句

return 0;

带有返回值的C语言函数要使用一个return语句,该语句包括关键字return,后面紧跟要返回的值,然后是一个分号。

2.3一个简单程序的结构

程序由一个或多个函数组成,其中必须有一个名为main()的函数。

函数头(header),包括预处理语句和函数名;

函数体(body),位于花括号中,并由一系列语句组成,每个语句以一个分号结束;

#include <stdio.h>

int main(void)

{

statements;

return 0 ;

}

2.4使程序可读的技巧

*选择有意义的变量名和使用注释;

*使用一个空行来分隔定义部分和动作部分;

*每个语句使用一行;

2.5更进一步

2.5.1说明

程序开始处使用一个注释说明文件的名称和程序的目的。对以后浏览或打印这些文件时很有帮助。

2.5.2多个声明

在一个声明语句中声明多个变量时,要使用“,”把多个变更分隔开来;

2.5.4输出多个值

printf("There are %d feet in %d fathoms! \n”,feet,fathoms);

printf("Yes , I said %d feet!  \n”,6*fathoms);

注意,要输出的变量列表出现在引号之后的语句尾部,还要注意每一项与其余项之间要用逗号隔开;

第二句说明,输出值不必是一个变量,它只需结果值具有合适类型的某个式子;

2.6多个函数

/*two_func.c--在一个文件中使用两个函数*/
#include <stdio.h>
void butler(void);//第一次出现在原型中,通知编译器要用到该函数;

int main(void)
{
    printf("I will summon the butler function.\n");
    butler();//第二次以函数调用的形式出现;
    printf("Yes,Bring me some tea and writeable CD-ROMS.\n");
    return 0;
}

void butler (void)//第三次程序给出了函数的定义,即函数的源代码;
{
    printf("You rang,Sir?\n");
}

原型,是一种声明形式,它告诉编译器您正使用一个特殊的函数,它也了指明了函数的属性。

注意:void的意思是“空的”而不是“无效的”。

butler()函数执行的时间由main()函数调用它的位置决定。

所有的C程序都是从main()函数开始执行的,不管它在文件中处于什么位置,然而C的惯例是把main()函数放在开头,因为它通常为程序提供了最基本的框架。

C标准建议您为要用的所有的函数提供函数原型。

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
idreamo
粉丝 14
博文 139
码字总数 224743
作品 0
青岛
产品经理
C Primer Plus(5版)第8章编程题1_重定向实现

小伙伴们,对C语言编程有疑问的,可以加微信交流:poo_poo或者扫描我的头像,验证时请注明是“知友” 一、题目描述 本题是第8章编程题的第一道题,题目如下: 二、题目及思路分析 从题述来看...

石家的鱼
2017/07/11
0
0
C语言书籍资料汇总

我汇总出自己收藏的C语言方面的书籍资料,方便后期使用,或许你也用的到。 以下内容,有链接的都可以下载。 一、书籍 元老级别的书籍: C程序设计语言.pdf (c语言之父) C Primer plus 第5...

BjarneCpp
2017/11/06
0
0
学习C语言的教材

我的C语言是自学的,这些年看过不少教材。 下面,我对其中一些教材做个点评。 1. How to Think Like a Computer Scientist: C version 这是我读过最易懂的C语言教材。 虽然它只讲解最基本的语...

阮一峰
2011/09/18
0
0
小蚂蚁学习C语言(1)——C语言概述

C语言概述 1. 为什么学习C语言 C的起源和发展 1 第一代语言:机器语言 0101 2 第二代语言:汇编语言 add 1,2 3 第三代高级语言: C语言产生和发展过程: 产生时间:1972-1973 产生地点:美国...

嗜学如命的小蚂蚁
2015/11/26
180
4
2.1 Objective-C概述

第2章 Objective-C语言基础 iOS的项目中主要采用Objective-C语言编写,因此在开始讲解具体项目之前,本章将介绍Objective-C语言基础。本章重点如下: Objective-C与iOS开发 数据类型和表达式...

长平狐
2013/03/19
121
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

配置Spring的注解支持

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 配置Spring的注解支持 以上也提到了使用注解来配...

凯哥学堂
31分钟前
0
0
关于Spring Aop存在的一点问题的思考

在本人前面的文章Spring Aop原理之切点表达式解析中讲解了Spring是如何解析切点表达式的,在分析源码的时候,出现了如下将要讲述的问题,我认为是不合理的,后来本人单纯使用aspectj进行试验...

爱宝贝丶
33分钟前
0
0
JavaScript 概述

JavaScript是面向Web的编程语言。绝大多数现代网站都使用了JavaScript,并且所有的现代Web浏览器——基于桌面系统、游戏机、平板电脑和智能手机的浏览器——均包含了JavaScript解释器。这使得...

Mr_ET
今天
0
0
Java Run-Time Data Areas(Java运行时数据区/内存分配)

Java运行时数据区(内存分配) 本文转载官网 更多相关内容可查看官网 中文翻译可参考 2.5. Run-Time Data Areas The Java Virtual Machine defines various run-time data areas that are use...

lichuangnk
今天
0
0
docker learn :services docker-compose.yml

docker-compose.yml定义了服务的运行参数 version: "3" services: web: # replace username/repo:tag with your name and image details image: hub.c.163.com/dog948453219/friendlyhello d......

writeademo
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部