文档章节

C Primer Plus 第2章 C语言概述

idreamo
 idreamo
发布于 2016/05/07 05:38
字数 1698
阅读 44
收藏 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
粉丝 18
博文 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-2章 C++基础 知识总结

《C++ Primer Plus》第1-2章知识点总结 首先声明,本文总结内容均是在一定的C语言基础上进行的总结,因为第1-2章内容不多,所有知识点可能有些零散,不过都是刚学的容易忽略的知识点 C++融合...

qq_37792173
2017/09/19
0
0
小蚂蚁学习C语言(1)——C语言概述

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

嗜学如命的小蚂蚁
2015/11/26
206
4

没有更多内容

加载失败,请刷新页面

加载更多

spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
38分钟前
2
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部