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

        这第七章没有任何出彩的地方,所以作者在最后给出个指向函数的指针,指向函数的指针,先拽点名词,问:函数的指针和指向函数的指针是同是异?
        函数的名字被解释成指向函数的指针,想一想这是顺理成章的故事。
        为什么要引出个指向函数的指针呢?
        我自认为:这东西有大用处.正如书上所说,这个技术使函数有分支预测的能力,会获得不同的结果,想来有些重载函数的意味,但是我们知道重载的函数之间是靠参数的差异来区别重载函数的不同的,而以函数指针为参数的函数表面看来,甚是相同。
        :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]本身是不同的呀,在参数处理的时候会有潜在的错误!
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值