文档章节

C Primer Plus 第2章 C语言概述

idreamo
 idreamo
发布于 2016/05/07 05:38
字数 1698
阅读 43
收藏 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语言书籍资料汇总

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

BjarneCpp
2017/11/06
0
0
C Primer Plus(5版)第8章编程题1_重定向实现

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

石家的鱼
2017/07/11
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

没有更多内容

加载失败,请刷新页面

加载更多

根据进程名称杀死进程

ps -ef | grep keyword | grep -v grep | awk '{print $2}' | xargs kill -9 逐个分析: 1, ps -ef | grep keyword: 查出进程名含有 keyword 的所有进程; 2, grep -v grep: 从这些结果里面,把......

vinci321
39分钟前
1
0
nginx的简单使用:负载均衡

nginx:反向代理的服务器;用户发送请求到nginx,nginx把请求发送给真正的服务器,等待服务器处理完数据并返回,再把数据发送给用户。 nginx作为一个反向代理服务器,能缓存我们项目的静态文...

osliang
55分钟前
2
0
网站title标题被改并被百度网址安全中心提醒的解决办法

国庆假日期间我们Sine安全接到众多网站站长求助网站标题被改导致在百度搜索中百度安全中心提醒被拦截,导致网站正常用户无法浏览网站被跳转到一些菠菜du博网站,而且很明显的一个特征就是在百...

网站安全
57分钟前
1
0
JDK版本与major.minor version的对照关系

其实,只需要记住jdk6对于major.minor version 50即可,其他版本自行计算即可。 ---------------------

码代码的小司机
59分钟前
1
0
C++基础教程面向对象学习笔记及心得感悟[图]

C++基础教程面向对象学习笔记及心得感悟[图] 使用友元函数重载算术运算符: C ++中一些最常用的运算符是算术运算符 - 即加号运算符(+),减运算符( - ),乘法运算符(*)和除法运算符(/...

原创小博客
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部