C++ Primer学习笔记-第七章杂记

王朝c/c++·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

这第七章没有任何出彩的地方,所以作者在最后给出个指向函数的指针,指向函数的指针,先拽点名词,问:函数的指针和指向函数的指针是同是异?

函数的名字被解释成指向函数的指针,想一想这是顺理成章的故事。

为什么要引出个指向函数的指针呢?

我自认为:这东西有大用处.正如书上所说,这个技术使函数有分支预测的能力,会获得不同的结果,想来有些重载函数的意味,但是我们知道重载的函数之间是靠参数的差异来区别重载函数的不同的,而以函数指针为参数的函数表面看来,甚是相同。

问:void print( int arr[][], int size );这个函数声明是对是错?

当然是错的了,这个根本不是什么函数声明的问题,而是数组声明的问题,int arr[][]这个声明就是错的,后面一维的长度不可省略!

问:char* ScreenInit(int height = 120; int width; char background);这个声明如何?

这个不能算是错的,要看它前面的具体情况,如果单单是看这一个函数声明当然是错误的了,因为如果height的前面没有缺省的参数值,则此声明wrong!

问:int putvalues( (&ia)[] ); 又如何?

错,引用必须知道所以数组的大小!

函数的缺省参数之间是互补的关系,所以对于每一个参数不能重复的声明两次缺省参数。

对于以数组为参数的函数来说比如:

void putvalues( int* );

void putvalues( int[] );

void putvalues( int[ 10 ] );

都是相同的!为什么会这样呢?

我们知道函数的参数不会检查数组的长度所以说int[100000]和

int[10]没有任何的不同,对于函数参数来说,所以就有错误发生,毕竟

int[100000]和int[10]本身是不同的呀,在参数处理的时候会有潜在的错误!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航