函数原型究竟怎样理解?
??我想知道这里说的这种数字,也就是说的double,是因为小数部分呢?还是因为返回一个相同类型的数字?才叫double。
然后下面接着说,在程序中使用sqrt()时,也必须提供函数原型,可以用两种方法实现,1:在源代码文件中输入函数原型。2:包含头文件cmach,其中定义了原型。
???为什么这里用“也必须”提供函数原型?然后再一个实例中这样写 头文件包含了#include<cmath>,这里已经按上面的第2种方法包含在头文件定义了原型了,为什么在函数体中还要使用double side; side=sqrt(6.25)呢?
第二个问题问为什么书上说“也必须”提供函数原型,函数都不是在程序中使用的吗?为什么下面说在程序中使用sqrt()函数是,也必须提供函数原型呢?难道不实用函数是也必须提供原型么?
下面应该怎样理解呢?
这是个实例因为太多,被我删了一点
#include<cmath> //书中说有两种方法实现提供sqrt()函数原型,1:在代码文件中输入原型。 2:包含头文件cmach。既然已经有语句提供函数原型了,为什么还要有这个头文件?//
int main()
{
using namespace std;
cout<<"Enter the floor area,in square feet,of your home;"
double side;//既然头文件已经包含了函数原型了,为何还要声明 (按书上说这样的格式就表示函数原型)是因为函数头使用了整数,函数体用了sqrt()函数,值包含小数吗?//
side=sqrt(area);
cout<<side<<"=";
return 0;
} 展开
前面这个“原型”的意思是:原本的数据类型。
这里,先要给你解释一些基本概念:
变量和数据类型。
变量就是储物柜。数据类型,就是你将要放进这个储物柜的物品种类。
存放不同物品的储物柜,大小相差很大。如果你开一个车库来存放一只苹果,那就大大浪费了空间。反之就放不进去,造成数据丢失。所以在c++中,每开一个储物柜,就要预先说明它是用来存什么的。如果是存单个水果的,那就只开一点点空间。如果是要存飞机的,那就要弄个大机库。
例子:double x; 开一个用来存放double类物品的储物柜,并且命名为x。
而计算机编程语言中,基本的数据类型无非就那么几个:整数int / integer / long; 实数double / float; 布尔型/逻辑型 bool / boolean; 字符型char; 字符串string / cstring;
其中,每一个类型都有其固定的最大长度,就是c++为这种储物柜所设计的空间大小。
同一类的数据,如果超出了允许的长度,那要么就拆成几个,要么就用长度更大的类型。
比如说,int表示一个整数,而long也是。区别在于long用更大的储存空间,可以表示更大的整数。
double在英语中是双倍的意思。double就比float用了双倍的储存空间来储存实数(整数+小数)。
2. 函数
关于函数,以后有进一步认识之后会有不同的定义。这里对于现在简单的函数给你一个直观的认识。
一个函数,就像是一部机器、一条生产流水线。加入一种或几种原料,产出一个产品。从原料到产品的加工步骤和方式定义在函数内部,调用的时候无须理会。就比如榨汁机,输入单个水果类型的物品作为原料,产出汁水类型的果汁。输入苹果,产出苹果汁。输入芒果,产出芒果汁。
sqrt()也一样。其实sqrt()只是一个给人看的简称,c++里面、cmath里面根本不存在sqrt()这个函数。真正完整的函数就是double sqrt(double)。第一个double,表示这部机器的产物是一个double种类的物品。括号中的double,表示这部机器一次只需要一个double类型的物品作为原料。
后面的那个“原型”是什么意思呢?就是指sqrt()这部机器内部的运作方式、加工工序。后面那句话的意思是,你想要在你的程序中,使用sqrt()这部机器。那么你要么就要先在你的程序中造出来:(在源代码文件中输入函数原型)。如果你不会造,那也没关系,把人家造好的机器拿过来用也行,但你要先告诉我有这部机器的人叫什么名字(包含头文件cmach,其中定义了原型。cmach就是拥有sqrt()这部机器的人)
写的很好 举例也通俗易懂,但是还有个问题能帮忙解答一下吗,在补充问题里的那个示例。
头文件cmach里,包含了各种机器(函数),其中就有double sqrt(double).
所谓“在源代码文件中输入函数原型”,指的不是double x; x=sqrt(6.25);而是:
double sqrt(double)
{
.....
return ...;
}
cmach里面包含了这一段,所以你不需要再在程序中写的是这一段。
而double x; x=sqrt(6.25);的意思是:准备一个double类型的储物柜,命名为x。然后以double类型的6.25为原料,通过sqrt()机器加工,并把所获得的double类型的产出品放入储物柜x。
简单地说,这一句是调用,调用sqrt()函数。