1:如果函数的参数是一个指针,不要指望用该指针去申请动态内存。Test 函数的语句 GetMemory(str, 200)并没有使 str 获得期望的内存,str 依旧是 NULL,为什么? 原因: 毛病出在函数 GetMemory中。编译器总是要为函数的每个参数制作临时副本,指针参数 p 的副本是 ...
分类:
其他好文 时间:
2016-10-08 01:43:38
阅读次数:
168
1.C语言中只会以值拷贝的方式传递参数2.当向函数传递数组时,将数组名看做常量指针传数组首元素地址3.二维数组参数同样存在退化的问题,二维数组可以看做是一维数组,二维数组中的每个元素是一维数组4.二维数组参数中第一维的参数可以省略5.C语言中无法向一个函数传递任意的多..
分类:
编程语言 时间:
2016-10-06 00:52:18
阅读次数:
200
1. 数组参数退化为指针的意义 (1)C 语言中只会以值拷贝的方式传递参数,当向函数传递数组时,将整个数组拷贝一份传入函数导致执行效率低下,C 语言以高效作是最初的设计目标,所以这种方法是不可取的。 (2)参数位于栈上,太大的数组拷贝将导致栈溢出。 (3)将数组名看做常量指针,传递的是数组的首元素地 ...
分类:
编程语言 时间:
2016-09-27 09:08:57
阅读次数:
256
成员函数隐含this指针参数: 每成员函数一个隐式的指针形参(构造函数除外); 对象在调用成员函数时,编译器会将对象的地址传递给this指针; 1、构造函数(需用一个公有成员函数对私有的成员变量进行初始化,在对象构造时执行一次,无参的构造函数和带缺省值的构造函数都是缺省构造函数 ,缺省的构造函数只能 ...
分类:
编程语言 时间:
2016-08-06 23:17:28
阅读次数:
237
1.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。 参数filename指向要打开的文件名,mode表示打开状态 ...
分类:
其他好文 时间:
2016-07-21 06:21:53
阅读次数:
151
一种比异常终止更灵活的方法是,使用函数的返回值来指出问题。例如,ostream类的get(void)成员ASCII码,但到达文件尾时,将返回特殊值EOF。对hmean()来说,这种方法不管用。任何树脂都是有效的返回值,因此不存在可用于指出问题的特殊值。在这种情况下,可使用指针参数或引用参数来将值返回 ...
分类:
编程语言 时间:
2016-07-14 15:18:49
阅读次数:
204
测试这个功能的初衷是测试boost里面的bind
boost::bind((&A::sum), &a, _1, _2)
上面的代码是我boost bind及多线程这篇博客里面的一行代码。我就像boost是怎么做到这样调用一个类的成员函数的。其实成员函数和全局函数无非就是差一个this指针参数。给传进去不久也可以调用了。然而并没有那么简单。看了boost的源码表示太长了。没怎么看懂
然后就...
分类:
编程语言 时间:
2016-05-07 10:49:56
阅读次数:
174
(一)、二维数组与二级指针参数二维数组做参数:二维数组做参数与一维数组做参数一样,传递的都是首元素的地址,只不过二维数组的每个元素又是一个一维数组。例:intarr[5][10];这是一个5行10列的整形数组,可以将它看成一个只有5个元素的一维数组,只不过每个元素又是一个大..
分类:
其他好文 时间:
2016-05-01 17:53:55
阅读次数:
194
1. 参数传递的原则是:形参传给实参,不能反向传递; 2. 一级指针可以在函数内部修改形参指针指向的内容; 如: 如果我们想改变实参本身呢?也就是说,我们连指针值都要改变,如果使用: 就不行了,因为在函数内部不能通过改变形参的值来改变实参。 但是,可以通过二级指针来改变指针值。 关键是: 1. 编译 ...
分类:
其他好文 时间:
2016-04-13 02:00:00
阅读次数:
160