普通函数,回调函数都是被其他函数调用的,不同之处在于调用者是否明确知道自己调用的到底是什么,举个例子:void func1(){}void func2(){}typedef void (*fp)();//申明函数指针,fp表示一个空参数,返回类型void的函数指针void funcCaller1() ...
分类:
其他好文 时间:
2017-02-23 00:58:03
阅读次数:
154
参数策略 如果函数的参数是一个指针,不要指望用该指针去动态申请内存。如下: 原因是编译器总是为每个参数制作临时副本。指针参数p, 其副本为_p,使_p=p。如果改变了_p所指的内容,相应的p所指的内容也跟着改变(毕竟指向同样的地方)。但是在GetMemory中动态分配内存空间,改变了_p的内容。在调 ...
分类:
编程语言 时间:
2017-02-10 20:08:56
阅读次数:
166
each(array);作用:返回当前数组的key和value,并且向前移动内部指针。参数:array:数组返回值:返回当前的元素例子:使用each返回数组的每个值$a=array(‘a‘=>‘red‘,‘b‘=>‘blue‘,‘c‘=>‘yellow‘);
while(list($key,$value)=each($a))
{
echo"$key->$value\n";
}
..
分类:
编程语言 时间:
2017-02-09 16:33:56
阅读次数:
131
函数重载与函数指针(这一块很重要,后续要继续学习):当使用重载函数名对函数指针赋值时根据重载规则挑选与函数指针参数列表一致的候选者严格匹配候选者的函数类型与函数指针的函数类型#include<iostream>
usingnamespacestd;
voidmyFunc(inta)
{
printf("a:%d\n",a)..
分类:
其他好文 时间:
2017-01-20 13:24:21
阅读次数:
135
数组大小 我们一般情况下可以使用sizeof(数组名)/sizeof(数组元素)求数组元素个数,但需要注意的是,当我们需要调用函数处理数组时,数组的长度要在调用函数之前获取,因为调用函数的时候,数组退化为指针(参数里只传进去的是数组的首地址),在32位系统下,不管什么类型的指针,均为4个字节。 ...
分类:
编程语言 时间:
2016-12-18 18:27:10
阅读次数:
176
1.#include <stdio.h>void access(int a[][3], int row){ int col = sizeof(*a) / sizeof(int); int i = 0; int j = 0; printf("sizeof(a) = %d\n", sizeof(a)); ...
分类:
编程语言 时间:
2016-12-09 19:43:29
阅读次数:
232
1)指针基础: 既然程序中的变量只是一段存储空间的别名,那么是不是必须通过这个别名才能使用这段存储空间, int main() { int i=5; int *p=&i; printf("%d,%08x\n",i,p); *p=10; printf("%d,%08x\n",i,p); return ...
分类:
编程语言 时间:
2016-11-30 03:22:42
阅读次数:
134
粘个代码占位置,以后有时间把指针函数,函数指针都补上 ...
分类:
编程语言 时间:
2016-11-27 19:36:12
阅读次数:
182
先看两个demo: 一.在类test1中调用函数print() ,把print()的函数指针传递给test1的函数指针参数 test1.h: [cpp] view plain copy #include <stdio.h> #include <iostream> using namespace st ...
分类:
编程语言 时间:
2016-11-06 07:50:12
阅读次数:
208
分析之前先搞明白,这个二级指针其实在函数内部是承接了上个线程的返回值。 看man手册,发现返回值是个普通指针。人家用二级指针来承接,可能准备干大事。这个可以自己搜索一下。原因嘛,二级指针是保存了这个地址。一级指针承接的话就是这个地址。 那既然二级指针保存了,我们如何访问那?开始我觉得直接来个二级指针 ...
分类:
编程语言 时间:
2016-10-19 02:25:12
阅读次数:
188