C++ Primer Plus解读(第2章(共18章))

一、创建C++程序与C++程序的一般格式

1.C++的基本结构

int main()
{
    statements
    return 0}

其中:
①函数头对函数与程序其他部分之间的接口进行了总结,函数体指出函数应该做什么的计算机指令;
②C++中,每一条完整的指令都称之为语句,所有的语句都以分号结束(分号也叫终止符,是语句结束的标记,不可省略)。
③返回语句:结束该函数。
④调用函数与被调用函数:返回类型描述被调用函数返回给调用函数信息的属性;形参列表描述调用函数传递给被调用函数的信息。

二、#include 编译指令

  • 预处理器:处理以#开头的编译指令,典型预处理器操作:在源代码被编译之前,替换或添加文本(例如:#include 的作用是在最终编译之前,使用iostream文件内容替换该编译指令)。
  • C++头文件没有扩展名(这是一个动态发展的过程)。是指在include的时候不加后缀。由此产生一种名称空间的说法。
  • 名称空间旨在解决大型程序以及多个商家的程序组合更容易。可通过名称空间调用不同的同名函数。
  • 最初我们都使用iostream.h与cout的组合,后来增加了名称空间的特性后,大家都不愿改之前的代码,即使用iostream并添加std,便于使用搞出了一条using namespace std的指令(潜在的问题是如果std中与其他部分有重名函数或者变量,则把名称空间全部添加到程序中容易产生错误)。正确的做法是using std::cout。
  • 空格、制表符、回车统称为空白。标记需要用空白分开。括号与逗号是不需要用空白分开的标记。
  • C++源代码风格中比较重要的两条:1°每一个函数都由一个花括号开始和一个花括号结束,这两个花括号各占一行;2°与函数名称相关的圆括号周围没有空白。(区别:循环 for 有空白)

三、main()函数

1.main被启动代码调用(链接的时候目标代码、函数目标代码、启动代码是要放到一起,这个时候可能main被启动代码调用。更准确的说,启动代码只是桥梁,函数头描述的是main()与操作系统之间的接口属性。)
2.C语言中 main()省略返回类型就相当于说返回类型为int;C++语言中int main(void)明确指出函数不接受任何参数,让括号空着与使用void等效(在C中让括号空着意味着对是否接受参数保持沉默)。
思考:什么样的函数不需要返回值??

四、使用cout对象进行输出

1.cout是一个预定义对象,知道如何显示字符串、数字和单个字符等。输出是一个流,即从程序流出的一系列字符。cout对象表示这种流,属性在iostream中定义。cout对象属性包括一个插入运算符<<,它可以将右侧的信息插入到流中。
2.<<既是插入运算符,又是左移运算符。这个叫运算符重载。编译器通过上下文理解重载运算符的含义。
3.cout知道要打印的数字是数字还是字符串:如果是字符串,内存中用相应的编码表示;如果是数字,内存中用相应的二进制表示。同时,在打印数字时它知道将相应的数字转换成字符串(因此cout又被称为智能对象)(<<插入运算符起了关键作用,对于我们自定义的数据类型,需要重新定义<<(重载))。
4.

自由格式规则
cout<<"Now you have"
	<<carrots
	<<" carrots "
	<<endl;

等价于
cout<<"Now you have" <<carrots <<" carrots " <<endl;

五、C++程序中添加注释

//是C++风格注释;/**/是C语言注释风格。

六、何时及如何使用endl

1.控制符endl:重起一行。诸如endl等对于cout来说有特殊含义的特殊符号被称为控制符。
2.换行符:\n(旧式方法)(也叫转义序列)

七、声明和使用变量

1.C++的语句:声明语句;赋值语句;函数原型语句;消息语句;函数调用;返回语句。
2.声明分为:定义声明,引用声明
3.

  • 信息要想存储在计算机中,就需要指出信息的存储位置与空间大小。
  • 通过使用申明语句指出存储类型并提供位置标签。
  • 编译器负责分配与标记内存的细节。如int carrots一句表明需要足够的空间来存储一个整数并给存储单元指定名称。
  • 变量必须被明。C++在首次使用变量前声明即可,不必在程序指定的位置(也没有必要到处查找)。
  • 赋值语句将值赋给存储单元。
  • =:赋值运算符。可连续给几个变量同时赋值(自右向左)

八、使用cin对象进行输入

iostream将cin定义为表示数据流的对象。cin也可以将输入字符转换为接收信息的变量能够接受的形式。

九、定义与使用简单的函数

  • 函数用于创建C++程序的模块
  • 有返回值的库函数
  • C++编译器必须知道函数的参数类型与返回值类型,C++提供这种信息的方式是使用函数原型语句(用于描述函数接口)
  • 区别原型与函数头就看该语句结尾有没有分号
  • 提供原型可用两种方法来实现
    (1)在源代码中输入函数原型;
    (2)包含头文件。
  • 声明+赋值=初始化
  • 不接受任何参数的函数int rand();该函数用于生成随机数
  • 没有返回值的函数:如直接进行显示的函数,也称之为过程或子程序(在C++中称之为函数)
  • 对于库函数只需要提供函数原型即可;对于自定义函数,还需要提供新函数的源代码
  • return 0:main()函数被操作系统调用,如(调用者)UNIX脚本或者windows命令行批处理文件,并测试(被调用者)main()的返回值(退出值)。通常的约定是退出值为0意味着程序运行成功。所以return 0。
  • 当函数的返回类型为void时,不用在函数中使用return。然而,如果不提供返回值,则可以使用return;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值